Hallo zusammen. Seit gestern versuche ich mir nicht begreifliches Problem zu lösen. System: STK500 Attiny 2313 kein JTAG-Fuse Code: int main(){ DDRB = 0xff; //Outputs zum Test PORTD &= ~(1<<PD2); //Eingang auf L PORTA &= ~(1<<PA0); //Eingang auf L while(1){ if ( !(PINA & (1<<PINA0)) )PORTB = 0xFF;else PORTB = 0x00; if ( !(PIND & (1<<PIND2)) )PORTB = 0xFF;else PORTB = 0x00; }//while }//main Frage: Ich möchte den Zustand der Pins abfragen. Warum funktioniert PIND2 aber nicht PINA0? Ich hoffe meine Frage ist nicht alzu dumm oder unvollständig gestellt. Vielen Dank für eure Hilfe!
Gast
#2295659
Hi Das funktioniert schon. Nur aber so schnell, das du es nicht mitbekommst. Die zweite if-Anweisung überschreibt PortB wieder. MfG Spess
hm - das hab ich mir gedacht. Mein Code ist nicht 100% verständlich. Natürlich habe ich die Abfragen getrennt getestet. So wie es hier steht ist es natürlich wahr was du sagst; Ändert am Prob leider nix. PINA0 läuft auch alleine nicht.
auch wenn ich an PINA0 mit
PORTA |= (1<<PA0);
den Pullup setze, liegen keine 5V am Eingang an. imeer was um die 500mV
es liegt wohl am STK500. Außerhalb funkt der Pin. Meine jetzigen Setings sind: OSCEL bei 1/2 gesetzt XTAL1 gesetzt Nur wenn ich es ändere funktioniert es auch nicht wirklich. We will see. Ich lese weiter nach dem Fehler;)
Gast
#2295735
Hi
>es liegt wohl am STK500. Außerhalb funkt der Pin.
Die Anschlüsse von PortA liegen beim ATTiny2313 auch nicht auf der
Stiftleiste PortA, sondern auf Stiftleiste PortE/AUX XT1/XT2.
MfG Spess
vielen Dank. Das hab ich überhaupt noch nicht gewusst. prüfe ich ;)
genau das war es. PORTA liegt beim STK auf PORTE. Vielen Dank Spess für den Tip. Es ist das erste mal, dass mir so etwas vor kommt. In Zukunft werde ich den Faktor mit in eine eventuelle Fehlersuche einbeziehen.
Gast
#2296310
Hi Das gilt übrigens für alle AVRs, bei denen die XTAL-Pins als Portpins verwendet werden können. MfG Spess
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.