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