Hello everybody,

Thank you very much for the help everyone, the error was not called
Control.start.

My apologies for the translation.

A greeting

El 27 de septiembre de 2011 20:46, Antonio Linan <[email protected]>escribió:

> Jan is right, no calls to Control.start() are made, also you should do
> something like:
>
>
> event void Control.startDone(error_t err) {
>   if (error == SUCCESS){
>     // continue
>   } else {
>     call Control.start();
> }
>
> To ensure is running, you can also consider to use leds to ease the
> debugging process.
>
> Good luck :)
>
> Antonio.
>
> On Tue, Sep 27, 2011 at 8:06 PM, Jan Hauer <[email protected]> wrote:
>
>> It looks like you forget to call SplitControl.start() (provided by
>> ActiveMessageC or SerialActiveMessageC) ...
>>
>> Jan
>>
>> On Tue, Sep 27, 2011 at 7:10 PM, Juan Verdu <[email protected]> wrote:
>> > Hello everyone,
>> >
>> > I am working with a MSP430F2617 microcontroller  and a radio CC2420
>> under
>> > the Zolertia driver.
>> >
>> > I am making an application to read the internal temperature of the
>> > microcontroller, and later I will send the information to a base station
>> > under the Basestation application.
>> >
>> > My application performs Send () correctly but this application fails
>> > AM.sendDone (), if I change the component SerialActiveMessageC by
>> > ActiveMessageC, the same problem will happen. In this case, I do not use
>> a
>> > radio. I use the serial port and I wouldn´t use the BaseStation
>> application.
>> >
>> > The code is as follows:
>> >
>> >
>> > Makefile
>> >
>> > COMPONENT=TestAdcAppC
>> > CFLAGS += -DADC12_TIMERA_ENABLED
>> > CFLAGS += -DADC12_ONLY_WITH_DMA
>> > include $(MAKERULES)
>> > CFLAGS += -DCC2420_DEF_CHANNEL=20
>> >
>> > TestAdc.h
>> >
>> >
>> > #ifndef TEST_SERIAL_H
>> > #define TEST_SERIAL_H
>> > typedef nx_struct test_serial_msg {
>> >   nx_uint16_t counter;
>> > } test_serial_msg_t;
>> > enum {
>> >   AM_TEST_SERIAL_MSG = 0x89,
>> > };
>> > #endif
>> >
>> > TestAdcC.nc
>> >
>> > #include "Timer.h"
>> > #include "TestAdc.h"
>> >
>> > module TestAdcC
>> > {
>> >   uses interface Boot;
>> >   uses interface Leds;
>> >   uses interface Timer<TMilli> as Timer0;
>> >     uses interface Msp430Adc12Overflow as overflow;
>> >   uses interface Msp430Adc12SingleChannel as adc;
>> >   uses interface Resource;
>> >   uses interface SplitControl as Control;
>> >   uses interface Packet;
>> >   uses interface AMSend;
>> > }
>> >
>> > implementation
>> > {
>> > #define BUF_SIZE 100
>> >   uint16_t buf[BUF_SIZE];
>> >  message_t packet;
>> >
>> > uint16_t counter = 0;
>> > uint16_t Data;
>> >
>> > void configureSingle();
>> > msp430adc12_channel_config_t adcconfig = {
>> >     inch: SUPPLY_VOLTAGE_HALF_CHANNEL,
>> >     sref: REFERENCE_VREFplus_AVss,
>> >     ref2_5v: REFVOLT_LEVEL_1_5,
>> >     adc12ssel: SHT_SOURCE_ACLK,
>> >     adc12div: SHT_CLOCK_DIV_1,
>> >     sht: SAMPLE_HOLD_4_CYCLES,
>> >     sampcon_ssel: SAMPCON_SOURCE_SMCLK,
>> >     sampcon_id: SAMPCON_CLOCK_DIV_1
>> >   };
>> >
>> >   event void Boot.booted()
>> >   {
>> > call Resource.request();
>> >    }
>> > async event void overflow.conversionTimeOverflow(){
>> >        }
>> >   async event void overflow.memOverflow(){
>> >       }
>> >
>> >   async event uint16_t *adc.multipleDataReady(uint16_t *buffer, uint16_t
>> > numSamples){
>> >             return buffer;
>> >   }
>> >  task void send(){
>> >     test_serial_msg_t* rcm = (test_serial_msg_t*)call
>> > Packet.getPayload(&packet, sizeof(test_serial_msg_t));
>> >     // call Resource.release();
>> >     call Leds.led0Toggle();
>> >      rcm->counter = Data;
>> >     if(  call AMSend.send(AM_BROADCAST_ADDR, &packet,
>> > sizeof(test_serial_msg_t)) == SUCCESS)
>> >         call Leds.led1Toggle();
>> >     }
>> >   async event error_t adc.singleDataReady(uint16_t data){
>> >     Data = data;
>> >     post send();
>> >           return SUCCESS;
>> >   }
>> >     event void Resource.granted(){
>> >     configureSingle();
>> >     call Timer0.startPeriodic(2048);
>> >   }
>> >   void configureSingle(){
>> >     error_t e;
>> >     e = call adc.configureSingle(&adcconfig);
>> >       }
>> > event void Timer0.fired()
>> >   {
>> >     call adc.getData();
>> >   }
>> > event void AMSend.sendDone(message_t* bufPtr, error_t error) {
>> >     call Leds.led2Toggle();
>> > }
>> > event void Control.startDone(error_t err) {
>> >       }
>> >
>> >  event void Control.stopDone(error_t err) {
>> >     }
>> > }
>> >
>> > TestAdcAppC.nc
>> >
>> > #include "TestAdc.h"
>> > configuration TestAdcAppC {
>> > }
>> > implementation
>> > {
>> >   components MainC,
>> >              TestAdcC,
>> >              LedsC;
>> >  components ActiveMessageC as AM;
>> >  components new TimerMilliC() as Timer0;
>> >  components new Msp430Adc12ClientAutoDMAC() as Lectura;
>> >   TestAdcC.overflow -> Lectura;
>> >   TestAdcC.adc -> Lectura;
>> >   TestAdcC.Resource -> Lectura;
>> >    TestAdcC -> MainC.Boot;
>> >   TestAdcC.Leds -> LedsC;
>> >   TestAdcC.Timer0 -> Timer0;
>> >   TestAdcC.Control -> AM;
>> >   TestAdcC.AMSend -> AM.AMSend[AM_TEST_SERIAL_MSG];
>> >   TestAdcC.Packet -> AM;
>> > }
>> >
>> > Could someone help me?
>> >
>> > Escribe texto o la dirección de un sitio web, o bien, traduce un
>> documento.
>> > Cancelar
>> >
>> > traducción del español al inglés
>> >
>> > A greeting and thank you very much
>> >
>> > _______________________________________________
>> > Tinyos-help mailing list
>> > [email protected]
>> >
>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>> >
>>
>
>
>
> --
> --
> Antonio Liñan Colina
> R+D+I Engineer
> @: [email protected]
> @: [email protected]
> ------------------------------
> Advancare
> T: +34 93 582 02 70
> http://www.advancare.com
> http://www.zolertia.com
> http://zolertia.sourceforge.net
> http://webshop.zolertia.com
>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to