-
-
Neuer Benutzer
Öfters hier
'################################################# ##
'Ein Standard-LCD 4x20 Zeichen mit dem
'RN-LCDStandardAdapter an Port B
'von RN-Control angeschlossen
'rnlcdadapterstdtest.bas
'
'Autor: Frank
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'################################################# #############
$programmer = 1 'MCS USB (Zeile weglassen wenn anderer Programmer)
' -------------- RN-Control übliche _____________________
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
'$baud = 9600
'Config Scl = Portc.0 'Ports fuer IIC-Bus
'Config Sda = Portc.1
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer
I2cinit
Start Adc
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
'Print
'Print "**** RN-Control V1.4 *****"
'Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
'Print
' -------------- Ende RN-Control übliche _____________________
Config Pinc.4 = Output 'Spannung an LCD aktivieren
Lcdpower Alias Portc.4
Config Pinc.6 = Output
Lcd_rw Alias Portc.6
Lcd_rw = 0
Lcdpower = 1
Wait 1
Config Lcd = 20 * 4 , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5 , Rs = Portc.7
Config Lcdbus = 4
Initlcd
Cls
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1
Lcd "an RN-Control"
Locate 3 , 1
Lcd "beides Bausaetze von"
Locate 4 , 1
Lcd "robotikhardware.de"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1:
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 1"
Case 2
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 2"
Case 3
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 3"
Case 4
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 4"
Case 5
Cls
Locate 1 , 1
Lcd "Licht wird umgeschaltet"
Toggle Lcdpower
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Ws = Getadc(7)
' Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
So sieht es momentan aus. Ich hab´s jetzt zuerst mit Port D versucht. Das Problem mit der Ausgabe war unverändert. Vielleicht liegt es auch daran, dass der "Beep" auch über Port D läuft. Hab jetzt alles was mit Port C zu tun hat als Kommentar markiert sowie $baud und die print Anweisungen. Auch da ist die Ausgabe unverändert. Der ton wird ausgegeben und das Licht lässt sich an und ausschalten. Nur Text wird nicht angezeigt. Es leuchten LED1-3 und 6 und 7. Je nach Tastendruck leuchten unterschiedliche LEDs was zumindest zeigt dass sich die Ausgänge ändern.
Auch bei diesem Program wird wie in deinem Vorschlag portc.6 bzw.d.6 auf null gesetzt.
Config Pinc.6 = Output
Lcd_rw Alias Portc.6
Lcd_rw = 0
Aber ich denke das Program sagt dir eh mehr als meine Erklärungen 
MfG Daniel
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen