-
Atmega8 und Taster
Hi,
ich habe ein Problem ich bekomme es nicht hin, das mein Controller auf meinen Taster reagiert.
Ich habe den Taster von PB6(XTAL1) auf GND gelegt. Als Programm habe ich:
Code:
$regfile = "m8def.dat"
$baud = 19200
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 4000000
Config Portb.6 = Input
Config Portb.1 = Output
Do
If Portb.6 = 1 Then
Portb.1 = 1
Waitms 600
Portb.1 = 0
Waitms 600
Else
Portb.1 = 1
Waitms 100
Portb.1 = 0
Waitms 100
End If
Loop
End
Die Led die an Portb.1 höngt blinkt schnell. Also scheint der Portb.6 ja auf Low zu stehen.
Habt ihr evtl ne Idee warum ich keine Reaktion auf einen Tastendruck bekomme?
Danke
MFG Daniel
-
Hallo Daniel,
nach mühsamer Kleinarbeit ist es mir gelungen das Programm so hinzubiegen, daß es auf meinem Testboard tut was es soll.
Viel Erfolg
Olaf
Code:
$regfile = "m32def.dat"
'$baud = 19200
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
Config Pinc.6 = Input
Config Pinc.1 = Output
Led1 Alias Portc.1 ' use 'port' if You're writing
S1 Alias Pinc.6 ' use 'pin' if You're reading
Do
If S1 = 1 Then
Led1 = 1
Waitms 600
Led1 = 0
Waitms 600
Else
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
End If
Loop
End
-
Wieso nach mühsamer Kleinarbeit?!
Der einzige Fehler liegt darin das er in der Input Definition und an den andren Stellen PORTB.6 statt PINB.6 genutzt hat.
LG Fabian
-
Hi,
Danke an euch beide das war mein Fehler.
Habt mir echt klasse geholfen!
MFG
Daniel
-
Kein Problem ;-)
Den Fehler hab ich anfangs auch immer gemacht, deshalb ist's mir gleich aufgefallen.
Was Vistauser mit mühsamer Kleinarbeit meinte würde mich trotzdem interessieren. :-k
LF Fabian
-
Hi murdocg,
kann ich dir erklären:
kann nicht programmieren und probiere und probiere und probiere
und wenns dann endlich hinhaut könnte ich vor Freude in die Luft
hupfen.
War doch ein prima Beispiel für mein neues Atmel Evaluations-
und Addon-Board. Es gibt eben Leute, die sich sowas mühsam erarbeiten müssen aber einen Mordsspass damit haben.
Servus
vistauser
-
Achso nadann ist das ja was andres ;-) Als Anfänger ist das Thema Fehlersuche wirklich schwer.
-
Hi,
also ich kann ein bisschen Programmieren, aber der Fehler war ja ehr spezifisch auf Mikrocontroller bzw. Bascom.
Ich frage lieber wenn ich nicht mehr weiter weiß. Besonders in diesem fall glaube ich hätte ich den fehler nie gefunden^^
Nochmals Danke
MFG Daniel
-
Hi,
jetzt habe ich das nächste Problem^^
Ich möchte mit einem Taster bei einem kurzen druck Aktion A ausführen und wenn der Taster 2sek. lang gedrückt wird möchte ich Aktion B ausführen.
Wie könnte man das realisieren? Ich habe schon mit If schleifen und waitms was versucht, aber das führt mich nicht zum Ziel.
Danke
MFG Daniel
-
Hallo Daniel,
hab hier mal kurz einen Code geschrieben, allerdings mit meinen "Einstellungen". Musst du nur auf dich anpassen, also µC, Crystal, usw.
Code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Pinb.0 = Input
Portb.0 = 1
T1 Alias Pinb.0
Dim A As Byte
Do
If T1 = 0 Then
While T1 = 0
Waitms 10
Incr A
If A = 255 Then A = 200
Wend
If A >= 200 Then
'Aktion bei 2 Sek.
Else
'Aktion bei kurzem Tastendruck
End If
End If
Loop
End
Gruß
Chris