Newbie AVR-gcc - function weirdness

Hi Group I am a Student of Electronic engineering and new to program my own Atmega128 microcontroller, and I started with basic tests to verify the hardware is correct, it is indeed. For now I am checking the results with an oscilloscope to eliminate probable hardware bugs. Here is the weird problem: if I call a function in my code it doesn't do anything in following code I expect to get a rectangle signal on PORTD and a static bitpattern representing the number 17 on PORTC but none happens, if I comment out the function call I get the rectangle on PORTD with the funtion call I get nothing.....

I am desperate as I don't understand what is going on......

this is the compile command avr-gcc test.c -Wall -mmcu=atmega128 -o test.o ;

Here is the simple but not working code:

#include #include

void test2(uint8_t c);

int main(){ DDRD = 0xFF; DDRC = 0xFF; PORTC = 0xFF; // init port // wait a bit asm volatile("nop\n\t" "nop\n\t" "nop\n\t" ::); // test2(17); // uncomment this line and it stops working!!

while (1){ PORTD = 0x00; // init port // wait a bit asm volatile("nop\n\t" "nop\n\t" "nop\n\t" ::); PORTD = 0xFF; // wait a bit asm volatile("nop\n\t" "nop\n\t" "nop\n\t" ::); } return 0; }

void test2(uint8_t c){ PORTC = c; }

Reply to
Thomas Ruschival
Loading thread data ...

Hi group it seems the problem was not the code but the fuse bits I forgot to set some of them....

Reply to
Thomas Ruschival

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.