Hi !
I have an issue with _delay_ms().
ATmega324Pa running on 8MHz gcc
This code works ok. I get 5 ms pulses on scope.
#define F_CPU 8000000UL #include "util/delay.h" #include "config.h" #include "string.h" int main(void) { wdt_enable(1000); //TCNT1 = 0xD8EF; //TCCR1B = 0x01; // timer start gpio_make_out(CONFIG); gpio_set(CONFIG); while(1) { wdt_reset(); gpio_clr(CONFIG); _delay_ms(5); gpio_set(CONFIG); _delay_ms(5); //appTaskHandler(); //appUartTaskHandler(); //if( (TIFR1 & 0x01) == 0x01 ) //{ // appTimerTaskHandler(); //} } }
Problem is when I use _delay_ms(5) in appTaskHandler i get pulse width 160ms
#define F_CPU 8000000UL #include "util/delay.h" #include "config.h" #include "string.h" int main(void) { wdt_enable(1000); //TCNT1 = 0xD8EF; //TCCR1B = 0x01; // timer start gpio_make_out(CONFIG); gpio_set(CONFIG); while(1) { wdt_reset(); //gpio_clr(CONFIG); //_delay_ms(5); //gpio_set(CONFIG); //_delay_ms(5); appTaskHandler(); appUartTaskHandler(); if( (TIFR1 & 0x01) == 0x01 ) { appTimerTaskHandler(); } } }
appTahskHandler is in same file as main().
Does code size matters?
My main.c is 3500 lines.
Program Memory Usage : 13750 bytes 42,0 % Full
Data Memory Usage : 1759 bytes 85,9 % Full
Thank you !
Regards !