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);
}
