Hello everyone, i want access adc value through writing CGI using http server, i am getting "0" value on cgi through html browser when accesses either i am not formatting data properly or what is wrong with my code here is my code attached
/* * Copyright (c) 2015, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ======== empty.c ======== */ /* XDCtools Header files */ #include <xdc/std.h> #include <xdc/runtime/System.h> #include<stdio.h> #include <stdbool.h> #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_pwm.h" #include "inc/hw_types.h" #include "driverlib/gpio.h" #include "driverlib/pwm.h" #include "driverlib/sysctl.h" #include "driverlib/adc.h" /* BIOS Header files */ #include <ti/sysbios/BIOS.h> #include <ti/sysbios/knl/Task.h> #include <ti/ndk/inc/netmain.h> #include "index.h" #include"greetings.h" #include"chip.h" //#include"getLEDSTATUS.h" /* TI-RTOS Header files */ #include <ti/drivers/EMAC.h> #include <ti/drivers/GPIO.h> // #include <ti/drivers/I2C.h> // #include <ti/drivers/SDSPI.h> // #include <ti/drivers/SPI.h> // #include <ti/drivers/UART.h> // #include <ti/drivers/USBMSCHFatFs.h> // #include <ti/drivers/Watchdog.h> // #include <ti/drivers/WiFi.h> /* Board Header file */ #include "Board.h" #define TASKSTACKSIZE 512 Task_Struct task0Struct; Char task0Stack[TASKSTACKSIZE]; uint32_t adc_value[4]; char bufer[4]; //volatile float signal_ch0,signal_ch1,signal_ch2,signal_ch3; /* * ======== heartBeatFxn ======== * Toggle the Board_LED0. The Task_sleep is determined by arg0 which * is configured for the heartBeat Task instance. */ Void heartBeatFxn(UArg arg0, UArg arg1) { while (1) { Task_sleep((unsigned int)arg0); GPIO_toggle(Board_LED0); } } /* * ======== main ======== */ Int getTime(SOCKET s, int length) { Char buf[200]; //static UInt scalar = 0; httpSendStatusLine(s, HTTP_OK, CONTENT_TYPE_HTML); httpSendClientStr(s, CRLF); httpSendClientStr(s, "<html><head><title>DATA ACQUSITIONS "\ "Time</title></head><body><h1>ADC CHANNEL</h1>\n"); System_sprintf(buf,"%d",adc_value[0]); httpSendClientStr(s, buf); System_sprintf(buf,"%d",adc_value[1]); httpSendClientStr(s, buf); httpSendClientStr(s, "</table></body></html>"); return (1); } Void AddWebFiles(Void) { //Note: both INDEX_SIZE and INDEX are defined in index.h efs_createfile("index.html", INDEX_SIZE, (UINT8 *)INDEX); efs_createfile("getTime.cgi", 0, (UINT8 *)&getTime); efs_createfile("chip.jpg", CHIP_SIZE,(UINT8 *)CHIP); efs_createfile("greetings.html", GREETINGS_SIZE,(UINT8 *)GREETINGS); } Void RemoveWebFiles(Void) { efs_destroyfile("index.html"); efs_destroyfile("getTime.cgi"); efs_destroyfile("chip.jpg"); efs_destroyfile("greetings.html"); } int main(void) { Task_Params taskParams; /* Call board init f * * *unctions */ Board_initGeneral(); Board_initEMAC(); Board_initGPIO(); // Board_initI2C(); // Board_initSDSPI(); // Board_initSPI(); // Board_initUART(); // Board_initUSB(Board_USBDEVICE); // Board_initUSBMSCHFatFs(); // Board_initWatchdog(); // Board_initWiFi(); /* Construct heartBeat Task thread */ Task_Params_init(&taskParams); taskParams.arg0 = 1000; taskParams.stackSize = TASKSTACKSIZE; taskParams.stack = &task0Stack; Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL); /* Turn on user LED */ GPIO_write(Board_LED0, Board_LED_ON); uint32_t adc_value[4]; volatile uint32_t adc0,adc1,adc2,adc3; GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_4); GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_5); GPIOPinTypeADC(GPIO_PORTB_BASE,GPIO_PIN_4); GPIOPinTypeADC(GPIO_PORTB_BASE,GPIO_PIN_5); SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); ADCSequenceConfigure(ADC0_BASE,2,ADC_TRIGGER_PROCESSOR,0); //CONFIGURE THE ADC SAMPLE SEQUENCER THAT U WANA USE ADCSequenceStepConfigure(ADC0_BASE,2,0, ADC_CTL_CH9 ); //CONFIGURE THE STEPS OF SAMPLE SEQUENCER ADCSequenceStepConfigure(ADC0_BASE,2,1, ADC_CTL_CH8 ); // ADCSequenceStepConfigure(ADC0_BASE,2,2, ADC_CTL_CH10 ); // ADCSequenceStepConfigure(ADC0_BASE,2,3, ADC_CTL_CH11|ADC_CTL_IE|ADC_CTL_END ); ADCSequenceEnable(ADC0_BASE, 2); ADCProcessorTrigger(ADC0_BASE,2); while(!ADCIntStatus(ADC0_BASE, 2, false)) { } ADCIntClear(ADC0_BASE,2); ADCSequenceDataGet(ADC0_BASE,2,adc_value); GPIO_write(Board_LED0, Board_LED_ON); System_printf("Starting the example\nSystem provider is set to SysMin. " "Halt the target to view any SysMin contents in ROV.\n"); /* SysMin will only print to the console when you call flush or exit */ System_flush(); /* Start BIOS */ BIOS_start(); return (0); }