www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 Bascom Programmierung


Autor: Zexon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich hab vor kurzen mir ein Pollin Evu Board gekauft , ich hab das 
beispiel Testtool auf einen Atmega8 gespielt. Jetzt möchte ich aber gern 
das wenn man auf denn 1. Taster drückt das dass LED Blinkt bis der 
Taster wieder gedrückt wird hab schon im Forum gesucht aber nicht 
passendes gefunden.

So würde das ausschauen Taster LED An Taster LED AUS
$regfile = "m8def.dat"                                      'Atmega = m8def.dat

$crystal = 8000000                                          'Externen Quarz (8MHz)

Dim A As Byte                                               'Variablen
Dim B As Byte

Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)

Main
Do

  If Pind.2 = 1 Then

  Toggle Portd , 5
  Bitwait Pind.2 , Reset

  End If




Loop

Kann mir jemand vl ein Beispiel geben, ich komm nicht drauf wie man das 
machen kann -.- würde mir sehr weiterhelfen, sry bin noch Anfänger  ;)

MFG Zexon

Autor: danst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

du musst nur die Zeile mit dem Bitwait auskommentieren. Außerdem würde 
ich eine kleine Pause einlegen, um den Taster zu entprellen. Dafür 
gibt's in Bascom auch einen Befehl "debounce".
$regfile = "m8def.dat"                                      'Atmega = m8def.dat

$crystal = 8000000                                          'Externen Quarz (8MHz)

Dim A As Byte                                               'Variablen
Dim B As Byte
Dim Zustand As Bit

Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)

Main

Do

  If Pind.2 = 1 Then
  waitms 25
  Toggle Portd , 5
                                         'Bitwait Pind.2 , Reset

  End If



Loop

Gruß Daniel

Autor: danst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, du willst es ja blinken lassen.
$regfile = "m8def.dat"                                      'Atmega = m8def.dat

$crystal = 8000000                                          'Externen Quarz (8MHz)

Dim A As Byte                                               'Variablen
Dim B As Byte
Dim Zustand As Bit

Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)

Main

Do

  If Pind.2 = 1 Then
     do
       Toggle Portd.5
       wait 1                                        'blinken im Sekunden TAkt
     loop until pind.2 = 1
     Portd.5 = 0
  End If

Loop


eleganter ist die Programmierung der Pause mittels eines Timers, da der 
Controller sonst blockiert wird

Gruß Daniel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.