2019-01-01 06:45 AM
I have built LED blinky test program in SPC560B-DIS eval, I am setting and clearing LEDs in eval bord. I have introduced delay "osalThreadDelayMilliseconds(500);" between set and clear.
I have used below code for my application, but it throws build error please find attached build error. Please guide to fix the error, Note if I am commenting line "stm_lld_start(&STMD1,stm0_config);" starts working. but if including throws build error
#include "components.h"
#include "stm_lld_cfg.h"
int main(void)
{
componentsInit();
/* Enable Interrupts */
irqIsrEnable();
/* Activates STM0 Driver */
stm_lld_start(&STMD1,stm0_config);
/* Enable channels and start global counter */
stm_lld_enable(&STMD1);
for (;;)
{
pal_lld_setpad(PORT_C, PIN_GPIO34_LED);
osalThreadDelayMilliseconds(500); // Delay 500 ms
pal_lld_clearpad(PORT_C, PIN_GPIO34_LED);
osalThreadDelayMilliseconds(500); // Delay 500 ms
}
}
Solved! Go to Solution.
2019-02-07 02:07 AM
Hello nanda ,
you have forgotten to put the callback associated in your main.c
i miss the point
/*stm0 channel 0 callback*/
void cb_stm0_ch0 (void){
uint8_t message[]= "STM0 Channel 0 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 1 callback*/
void cb_stm0_ch1 (void){
uint8_t message[]= "STM0 Channel 1 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 2 callback*/
void cb_stm0_ch2 (void){
uint8_t message[]= "STM0 Channel 2 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 3 callback*/
void cb_stm0_ch3 (void){
uint8_t message[]= "STM0 Channel 3 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
2019-01-02 10:06 PM
can any one support on this please
2019-02-07 02:07 AM
Hello nanda ,
you have forgotten to put the callback associated in your main.c
i miss the point
/*stm0 channel 0 callback*/
void cb_stm0_ch0 (void){
uint8_t message[]= "STM0 Channel 0 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 1 callback*/
void cb_stm0_ch1 (void){
uint8_t message[]= "STM0 Channel 1 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 2 callback*/
void cb_stm0_ch2 (void){
uint8_t message[]= "STM0 Channel 2 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}
/*stm0 channel 3 callback*/
void cb_stm0_ch3 (void){
uint8_t message[]= "STM0 Channel 3 expired!\r\n";
while (sd_lld_write(&SD1,message,(uint16_t)(sizeof(message)/sizeof(message[0]))) == SERIAL_MSG_WAIT){}
}