Ja, um die Warnung zu verstehen, musst du ein wenig von C und dessen
Compiler verstehen. ;-) Das hängt damit zusammen, dass du für die
Einbindung von <avr/io.h> ein Stück des C-Compilers benutzt, den
sogenannten Präprozessor. Allerdings versuchst du, dieses Stück
C mit Assemblerkommentaren zu mischen:
1 | #include <avr/io.h> ; das gibt den Controllertyp an
|
Das versteht der C-Compiler nicht. Also entweder so:
1 | ; das gibt den Controllertyp an
|
2 | #include <avr/io.h>
|
oder so:
1 | #include <avr/io.h> /* das gibt den Controllertyp an */
|
Aber das ist wohl nicht dein Hauptproblem. <avr/io.h> ist so
aufgebaut, dass man normalerweise über einen Makro auf die IO-Register
zugreifen soll. Du musst also schreiben:
1 | LDI R24, 0xFF
|
2 | OUT _SFR_IO_ADDR(DDRD), R24
|
3 |
|
4 | LDI R24, 0x00
|
5 | OUT _SFR_IO_ADDR(PORTD), R24
|
6 |
|
7 | LDI R24, 0xFF
|
8 | OUT _SFR_IO_ADDR(DDRB), R24
|
9 |
|
10 | LDI R24, 0xFF
|
11 | OUT _SFR_IO_ADDR(PORTB), R24
|
Siehe auch hier:
http://www.nongnu.org/avr-libc/user-manual/assembler.html