Forum: Mikrocontroller und Digitale Elektronik ATmega8 Eingaenge deffekt?


von Ali ÖzdaL (Gast)


Lesenswert?

Ich mache gerade meine ersten Gehversuche mit AVR, Bascom, Ponyprog und
seriellem Programmer.
Heute Morgen war ich noch glücklich, als die erste LED per Taster ein-
uns ausschalten konnte. Und zwar mit ungefäher folgendem Programm:

$regfile = "m8def.dat"
$crystal = 3686400
 Ddrb = &B00000010
Portb = &B00000001


Do
   If Portb.0 = 1 Then
      Portb.1 = 1
   Else
      Portb.1 = 0
   End If
Loop

End

Nach einigen anderen Experimente merkte ich, das da irgend etwas nicht
stimmt. Das obige Programm habe ich neu übertragen. Aber der Eingang in
der Software sieht anscheinend immer eine "0", obwohl ich direkt am
betreffenden Eingang eine "0" bzw. eine "1" je nach stellung des
Tasters messe. Compilleren und Übertragen läuft reibungslos. Als
Eingang habe ich auch Bit 1 bzw. Bit 2 verwendet. Erfolgslos. Als
Ausgang deklarierte Bits reagieren, wenn ich die IF Abfrage ändere.

Kann mir einer bitte sagen, woran es liegen kann oder was ich falsch
mache?

Gruss

von Dirk (Gast)


Lesenswert?

Hi,

deine Taste prellt. Bascom bietet einen Befehl zur Entprellung der
Taste "Debounce"

Gruß,
Dirk

von dom (Gast)


Lesenswert?

Ne, da liegt nicht das Problem. Das Problem ist, dass wenn du einen Port
auslesen willst Pinx.x heißen muss net Portx.x!

Also

If Pinx.x = 1 Then
Portx.x =1
...

gruß

von Ali ÖzdaL (Gast)


Lesenswert?

Oh man!
Das ging aber schnell.

DAAAAAAAANNNNKEEEEE

und so peinlich. Seit fast 7 Stunden....

Natürlich mit "pinb.0 = 1" abfragen nicht "Portb.0 = 1"

Jetzt kann ich wieder ruhig schlafen.

Gruss

von dom (Gast)


Lesenswert?

Dann ist ja gut ^^

Bitte bitte ging mir am Anfang ähnlich ;)

gruß

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
Noch kein Account? Hier anmelden.