Ich habe vor ein 2x16 Zeichen LCD-Display mit einem ATMEGA 644
anzusteuern. Die Steuerleitungen des LCDs liegen an Pin 0..2 des PORTB.
Zunächst hängen die Pins aber in der Luft.
Nun zu meinem Problem:
1 | #include <avr/io.h>
|
2 |
|
3 | int main()
|
4 | {
|
5 | DDRB |= 0x07; //PB0..PB2 als Ausgang
|
6 |
|
7 | PORTB |= 0x01; //PB0 auf HIGH (sollte jedenfalls so sein)
|
8 |
|
9 |
|
10 | while(1);
|
11 | }
|
Dieser Code führt dazu, dass an PB0 und(!!??) PB2 eine Spannung von ca.
2,5V anliegt (????).
Die Fuses sind erstmal auf default.
Ich benutze avrdude-5.5, avr-libc-1.6.2, binutils-2.18 und gcc-4.3.2
jeweils unter opensuse 11 kompiliert.
Habe ich etwas entscheidendes im Datenblatt übersehen, was eingestellt
werden muss um PORTB (zumindest PB0..PB2) als normalen I/O Port benutzen
zu können?
Ich hoffe, dass jemand eine Idee hat.