Hallo zusammen,
ich habe bei der Programmierung des ATmega128A mit WinAVR-20100110
folgendes Problem. Hier ein einfaches Beispiel zur Verdeutlichung.
Folgender Quellcode funktioniert i.O.:
1 | #include <avr/io.h>
|
2 | //#include "spi.h"
|
3 |
|
4 | void spi_init( void )
|
5 | {
|
6 | DDRB = 0x01;
|
7 | }
|
8 |
|
9 | int main( void )
|
10 | {
|
11 | spi_init();
|
12 |
|
13 | while ( 1 )
|
14 | {
|
15 | PORTB = 0x01;
|
16 | PORTB = 0x00;
|
17 | }
|
18 |
|
19 | return 0;
|
20 | }
|
Lagere ich nun die spi_init-Funktion in eine eigenständige Quell-Datei
aus und binde sie über eine Header-Datei ein, verändert sich das
Hex-File und viel schlimmer Pin1 von PortB des ATmega128A bleibt stumm.
Im Makefile ist alles vorhanden und auch beim Compilieren und Generieren
des Hex-Files gibt es keine Probleme.
Die Header-Datei sieht recht simpel aus:
1 | #ifndef _SPI_H__
|
2 | #define _SPI_H__
|
3 |
|
4 | void spi_init( void ) ;
|
5 |
|
6 | #endif
|
Hat vielleicht jemand eine Ahnung wo das Problem liegen könnte?