Forum: Mikrocontroller und Digitale Elektronik Taster Einlesen


von Tx (Gast)


Lesenswert?

Hallo,

irgendwie bekomme ich es nicht hin das ich auf meinen myAVR mk2 Board
ein Taster einlesen kann...

hier mein Programm

$regfile = "m8def.dat"
$crystal = 3690000


Config Portb = Output
Config Portc = Input
Config Portc = 1


Do

If Portc = 0 Then
Portb = 1
Else
Portb = 0

End If

Loop

End

von Karl H. (kbuchegg)


Lesenswert?

Tx schrieb:
> Hallo,
>
> irgendwie bekomme ich es nicht hin das ich auf meinen myAVR mk2 Board
> ein Taster einlesen kann...


> If Portc = 0 Then

Eingelesen wird über das Pin Register


  PORTx     Ausgänge schalten (oder Pullup ein/aus schalten)
  PINx      Eingänge einlesen

von Tx (Gast)


Lesenswert?

tut sich immer noch nichts!

$regfile = "m8def.dat"
$crystal = 3690000


Config Portb = Output
Config Pinc.5 = Input
Config Portc = 1


Do

If Pinc.5 = 0 Then
Portb = 1
Else
Portb = 0

End If

Loop

End

von Karl H. (kbuchegg)


Lesenswert?

Tx schrieb:
> tut sich immer noch nichts!

Ich bin zwar kein BASCOM spezialist, aber ich würde mal sagen

> Config Pinc.5 = Input
> Config Portc = 1

da beeinflusst das eine das andere und die beiden hängen irgendwie 
miteinander zusammen :-)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Config Pinc.5 = Input
> Config Portc = 1

Wenn die 2. Zeile die den internen Pullup-Widerstand für Pinc.5 
aktivieren soll, tut er das nicht. Die Zahl 1 ist falsch.

von Tx (Gast)


Lesenswert?

Stefan B. schrieb:
>> Config Pinc.5 = Input
>> Config Portc = 1
>
> Wenn die 2. Zeile die den internen Pullup-Widerstand für Pinc.5
> aktivieren soll, tut er das nicht. Die Zahl 1 ist falsch.

wenn ich die zahl aber weglasse komplimiert er mir das aber nicht

von Karl H. (kbuchegg)


Lesenswert?

Tx schrieb:
> Stefan B. schrieb:
>>> Config Pinc.5 = Input
>>> Config Portc = 1
>>
>> Wenn die 2. Zeile die den internen Pullup-Widerstand für Pinc.5
>> aktivieren soll, tut er das nicht. Die Zahl 1 ist falsch.
>
> wenn ich die zahl aber weglasse komplimiert er mir das aber nicht

es heisst compiliert
zweitens, was soll die zweite Zeile eigentlich bezwecken?

von Tx (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Tx schrieb:
>> Stefan B. schrieb:
>>>> Config Pinc.5 = Input
>>>> Config Portc = 1
>>>
>>> Wenn die 2. Zeile die den internen Pullup-Widerstand für Pinc.5
>>> aktivieren soll, tut er das nicht. Die Zahl 1 ist falsch.
>>
>> wenn ich die zahl aber weglasse komplimiert er mir das aber nicht
>
> es heisst compiliert
> zweitens, was soll die zweite Zeile eigentlich bezwecken?


die 2 te zeile soll bezwecken das die internen pullup widerstände 
aktiviert werden!

von Samuel C. (dragonsam)


Lesenswert?

>>Config Pinc.5 = Input
>>Config Portc = 1

So kann das nicht funktionieren. Da setzt du den PIN zuerst auf Eingang 
und dann wieder auf Ausgang.
Schreibe lieber folgendes:

Config Pinc.5 = Input
Portc = 1

von Tx (Gast)


Lesenswert?

Samuel C. schrieb:
>>>Config Pinc.5 = Input
>>>Config Portc = 1
>
> So kann das nicht funktionieren. Da setzt du den PIN zuerst auf Eingang
> und dann wieder auf Ausgang.
> Schreibe lieber folgendes:
>
> Config Pinc.5 = Input
> Portc = 1


du meinst so richtig ?

$regfile = "m8def.dat"
$crystal = 3690000


Config Pinc.5 = Input
Portc = 1
Config Portb = Output



Do

If Pinc.5 = 0 Then
Portb.3 = 1
Else
Portb = 0

End If

Loop

End

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Weglassen hat niemand empfohlen. Es gibt ja noch andere Zahlen als die 
Eins: Mindestens 128 mögliche und eine sinnvolle. Tipp: Was bedeutet 
denn das .5 bei der ersten Zeile oder das .3 bei dem Schalten der LED?

von Tx (Gast)


Lesenswert?

Stefan B. schrieb:
> Weglassen hat niemand empfohlen. Es gibt ja noch andere Zahlen als die
> Eins: Mindestens 128 mögliche und eine sinnvolle. Tipp: Was bedeutet
> denn das .5 bei der ersten Zeile oder das .3 bei dem Schalten der LED?



Das sind meine jeweiligen Ausgangs PIN´s

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Nee, Pinc.5 ist doch kein Ausgangspin, sondern dein Eingangspin!

Portb.3 ist ein Ausgangspin und zwar der für die LED. Den schaltest du 
mit 1 auf HIGH Pegel und mit 0 auf LOW Pegel.

Wenn du jetzt den internen Pullup-Widerstand schalten willst, der dem 
Pinc.5 zugeordnet ist...

Und wenn du durch Nachlesen im Datenblatt oder im AVR-Tutorial 
heraus findest, dass man den Pullup-Widerstand von Pinregistern über 
deren Portregister schaltet... was hälst du von diesen Zeilen:

Config Pinc.5 = Input
Portc.5 = 1

oder

Config Pinc.5 = Input
Portc = 32

oder

Config Pinc.5 = Input
Portc = &B00100000

Die letzten beiden Anweisungen erklären sich mit dem Artikel 
Bitmanipulation.

von Tx (Gast)


Lesenswert?

Stefan B. schrieb:
> Nee, Pinc.5 ist doch kein Ausgangspin, sondern dein Eingangspin!
>
> Portb.3 ist ein Ausgangspin und zwar der für die LED. Den schaltest du
> mit 1 auf HIGH Pegel und mit 0 auf LOW Pegel.
>
> Wenn du jetzt den internen Pullup-Widerstand schalten willst, der dem
> Pinc.5 zugeordnet ist...
>
> Und wenn du durch Nachlesen im Datenblatt oder im AVR-Tutorial
> heraus findest, dass man den Pullup-Widerstand von Pinregistern über
> deren Portregister schaltet... was hälst du von diesen Zeilen:
>
> Config Pinc.5 = Input
> Portc.5 = 1
>
> oder
>
> Config Pinc.5 = Input
> Portc = 32
>
> oder
>
> Config Pinc.5 = Input
> Portc = &B00100000
>
> Die letzten beiden Anweisungen erklären sich mit dem Artikel
> Bitmanipulation.



Okay,

danke es geht habe es hinbekommen!

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.