PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Butterfly Port B eingangsprobleme



domibutterfly
11.08.2005, 15:25
hi ich habe das Probblem das ich meine Port b nicht als Eingang verwenden kann. ich definiere ihn aber als eingang, aber es funktioniert nicht.
ER bringt am PORT B 1/2 und 6 eine Eins, aber an den anderen eine null. Lege ich eine null oder eins an steigt der Stromfluss, aber der Port läßt sich nicht ändern.
Kann das am Interrupts RTC oder LCd liegen?

Psiyou
11.08.2005, 15:48
Hallo,
wie hast das den initialisiert ?? evt mal code hier posten....
Koente aber daran liegen das Du den Pull-Up Widerstand fuer Pin 1,2 und 6 aktiviert hast. (Wenn Du in das PORTB Register an den Stellen eine 1, 2 und 6 eine 1 stehen hast ->0x23).

Philipp

domibutterfly
11.08.2005, 16:10
Hier mal der Code zur Initialisierung und eine frage ob der Code oben drüber ob der was aus macht.

// PORTB = (15<<PB0); // Enable pullup on ist das der Fehler
ein oder ausschalten ???

void port_init(void) {
// first initilize the outputs
disableb_jtag();
DDRF = 0xF0;
DDRE = 0xF0;
// initialize the inputs
DDRB = 0x00;
}

Psiyou
11.08.2005, 20:07
Hi,

ja, daran sollte es liegen, nur die Frage warum das nur bei PIN 1,2&6 auftritt, wird wohl aber an der Schaltung liegen. Schreib doch einfach mal 0x00 in PORTB, und probiers dann noch mal. Sollte eigentlich gehn. Ansonten bitte mal Schaltung mit hinzufügen.

Philipp

SprinterSB
11.08.2005, 22:46
Und PortB ist 'offen'?, also ohen Butterfly-Hardware daran?

domibutterfly
12.08.2005, 17:00
Also die Ports sind offen, allerdings habe ich die vorgefertige Software vom Butterfly board genommen und dort ist der Port B schon definiert und maskiert. So denke ich es jedenfalls. Bin noch dabei die passende Maskierung zu verändern habe aber keine Ahnung wo sie genau steht und wie ich maskierungen ändere. Hat jemand von euch darin Ahnung?
Die Maskierung mußte sein, da Teile vom PORT B den Joystick steuern. denke also Button C. Aber da hänge ich gerade. ich brauche den Joystick nicht.
Wer mir da eine Hilfe geben kann. Das wäre echt nett.
Gruß Dominik

SprinterSB
12.08.2005, 17:45
Zum Initalisieren gehört nicht nur DDRx, sondern auch PORTx.
Wenn du auf IN bist, dann spielt es eine Rolle, ob Pullups aktiviert sind oder nicht. PORTx kannst du auch auslesen, um die das anzuschauen.

domibutterfly
16.08.2005, 07:21
thema hat sich geklärt. habe in den Unterroutinen irgendwo PB definiert und diese dann Maskiert gehabt, so das ein Überreschreiben nicht möglich war.