Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Tastenabfrage am Open Mini Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Andreas - 3.04.2009 10:43)
Andreas nutzt:  Open-Micro, Open-Mini
Ich habe das aus dem Projekt mal rausgelöst, weil es sonst zu unübersichtlich wird.

Mein Problem ist, das ich keine funktioinerende Tastenabfrage hinbekomme. Zum Test habe ich einen OM mit 9 LEDs und zwei Tasten beschaltet.

So einfache Testdurchläufe wie
#start
taste1 = led1
taste2 = led2
goto start

funktionieren ohne Probleme. Aber jede if .. then- Abfrage bei den Tasten (nur bei den Tasten) funktioniert nicht. Und ich weiß einfach nicht was das sein kann.

Ich habe schon eine ganze reihe Programmzeilen probiert. Aber keine hat mir ein Ergebnis geliefert, sodass ich annehme, dass hier ein genereller Fehler drin ist.

if Taste1 = on then goto Unterprogramm1
if Taste2 = on then goto Unterprogramm2
goto start                                 ' Rücksprung zu start


bewirkt nichts. Auch das Ersetzen von on durch -1 oder durch eine variable bringt nichts. Ebenfalls in der etwas komplexeren Abfrage über Flanken kommt kein Ergebnis zustande.

' --- Betriebssystem konfigurieren ------------------------------------------
include "om.def"           ' Definitionen fuer Betriebssystem
option openmini
'pullupa = &b00111101      ' Schaltet die internen Pull-Up-Widerstände von
                           ' Port1 und Port2 aus
pullupa = 0
pullupb = 0
ClockDis = on
' ---------------------------------------------------------------------------

RunOnErr = on              ' bei Fehler Programm neu starten
define PWM_Port            port[1]    ' 1. PWM Ausgang
define spannung            AD[2]      ' Spannungskontrollport
define Led1                port[4]
define Led2                port[5]
define Led3                port[6]
define Led4                port[9]        ' Die Open-Mini besitzt wie die Open-Micro
define Led5                port[10]       ' den PORTA und zusätzlich den PORTB.
define Led6                port[11]
define Led7                port[12]
define Led8                port[13]
define Tasterauf           port[14]             '  Taste höher
define Tasterunter         port[15]             '  Taste niedriger
define blank               port[16]              ' zum halbhell/dunkelsteuern der äußersten LEDs
define Bit81_88            byte[11]' byte 11 (statische Bits 81 bis 88)
define Flanke1             Bit[81] ' Flankenbit Taste rauf
define Flanke2             Bit[82] ' Flankenbit Taste runter
define taste1              Bit[87] ' Tastenbit Taste rauf
define taste2              Bit[88] ' Tastenbit Taste runter
define tmp                 byte    ' Hilfsvariable für PWM
define a                   byte    ' Zählervariable
define h                   byte    ' Tastenvariable
define l                   byte    ' Tastenvariable
define t                   byte    ' Zählervariable Start-Timer
define x                   byte    ' Timervariable
define y                   byte    ' Zählervariable Ende-Timer
define z                   byte    ' Timervariable Ende
define allleds_a byteport[1]  ' Sammelfestlegung aller LEDs an Port a
define allleds_b byteport[2]  ' Sammelfestlegung aller LEDs an Port b


'   Die Pinbelegung der
'    Open-Mini (QY4)
'           _____    _____
'          |     \__/     |
'         [  VDD      GND  ]       VDD = 4.6 bis 5.5 Volt
'          |              |
' blank   [  PTB7    PTB0  ]       LED 4
'          |              |
' LED 8   [  PTB6    PTB1  ]       LED 5
'          |              |
' LED 3   [  PTA5    PTA0  ]       PWM1
'          |              |
' LED 2   [  PTA4    PTA1  ]       AD
'          |              |
' Taste1  [  PTB5    PTB2  ]       LED 6
'          |              |
' Taste2  [  PTB4    PTB3  ]       LED 7
'          |              |
' LED 1   [  PTA3    PTA2  ]       host/run
'          |______________|
'
'----------------- Testprogramm für Tastenabfrage----------------------------
' ---Initialisierung---------------------------------------------------------
allleds_a = 0                              ' alle Ports A ausschalten
allleds_b = 0                              ' alle Ports B ausschalten



#init
if Taste1 = 0 then led1 = -1               ' LED1 leuchtet bei Nicht gedrückter Taste
if Taste2 = 0 then led2 = -1               ' LED2 leuchtet bei Nicht gedrückter Taste
if Flanke1 = -1 then led5 = -1             ' Flankenbit Taste1 gesetzt? LED5 on
if Flanke2 = -1 then led6 = -1             ' Flankenbit Taste2 gesetzt? LED6 on
if Flanke1 = 0 then led7 = 0               ' Flankenbit Taste1 nicht gesetzt? LED7 on
if Flanke2 = 0 then led8 = 0               ' Flankenbit Taste2 nicht gesetzt? LED8 on
if Tasterauf = -1 then goto setz1             ' Taste gedrückt? Ja, dann setze EIN-Flanke
Flanke1 = 0                                ' FlankenBit off setzen
if Tasterunter = -1 then goto setz2             ' Taste gedrückt? Ja, dann setze EIN-Flanke
Flanke2 = 0                                ' FlankenBit off setzen
goto initend                               ' Reset Ein-Flanke (bei Nichtbetätigung der Taste)
#setz1
if Flanke1 = on then                       ' Ein-Flanke gesetzt? Ja, dann Ende
End if
Flanke1 = on                               ' Setze Ein-Flanke (Sperre für weiteres Setzen)
goto init
#setz2
if Flanke2 = on then                       ' Ein-Flanke gesetzt? Ja, dann Ende
End if
Flanke2 = on                               ' Setze Ein-Flanke (Sperre für weiteres Setzen)
goto init
PWM_Port = on
#initend
goto init
end


Die PWM_Port-LED soll einen erfolgreichen Durchlauf des Programms signalisieren. Sie bleibt aber aus, also das Programm kommt gar nicht bis dort.

Hat jemand eine Idee dazu? Oder kann das mal gegentesten? Könnte es sein, dass irgendwie die Interpretation der Abfrage nicht richtig umgesetzt wird?

 Antwort schreiben

Bisherige Antworten:

Re: Tastenabfrage am Open Mini (von Wolfgang - 6.04.2009 12:32)
Re: Tastenabfrage am Open Mini (von André H. - 3.04.2009 11:20)
    Re: Tastenabfrage am Open Mini (von Andreas - 3.04.2009 13:37)