Hallo Leute, ich bin Neuling im Bereich AVR Programmierung und habe folgendes Problem. Wie in dem Schaltplan zu sehen ist, habe ich eine ATMEGA32 beschaltet. Mein Bascom Source : $regfile = "m32def.dat" $crystal = 4000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Mcusr = &H80 'disable JTAG Mcusr = &H80 'disable JTAG Config Porta = Input 'Configure Port A as Input Config Portb = Output 'Configure Port B as Output Dim Status As Bit Do If Pina.0 = 1 Then Status = 1 End If If Pina.1 = 1 Then Status = 0 End If If Status = 1 Then Portb.0 = 1 End If If Status = 0 Then Portb.0 = 0 End If Loop End Mein Problem ist nun, dass sich die LED nicht ein und Ausschalten lässt. Ein festhalten der Taster bringt auch nix. Habe ich nun nen Denkfehler, ist meine Schaltung Falsch oder liegts am Code ? Grüße Mark
1.: Die Taster sind Low-aktiv, Taster gedrückt -> "0" am Portpin 2.: VCC hat an AREF nichts verloren (was aber auf das aktuelle Problem keinen Einfluss hat)... 3.: externe Pull-Up-Widerstände sind bei AVRs witzlos. Der Mega32 hat interne Pull-Ups, die man nur aktivieren muss.
Wie aktiviere ich in Bascom die internen Pullups ? in C wäre es ja
1 | DDRA = 0x00 // Configure PortA as Input |
2 | PORTA = 0xFF // enable PortA internal Pullups |
Ganz blöde Frage: Wenn Du C kannst, warum wurschtelst Du dann mit basskomm rum? Abgesehen davon kann ich Dir mit BASCOM leider nicht viel weiterhelfen. Es müsste aber auch in BASCOM die Möglichkeit geben, entweder irgendwo ein "Schlüsselwort" wie "Pullup" anzubringen oder auf die Portregister zuzugreifen, oder sehe ich das falsch?
versuchs mal mit If Pina.0 = 0 Then Status = 1 End If If Pina.1 = 0 Then Status = 0 End If da Deine Taster LOW-aktiv sind. Gruß Jörg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.