meddie
30.09.2011, 11:24
Hallo Leute ich habe ein Problemchen:
Ich habe RN-Control 1.4, ein LCD vom Pollin LCD YL 162-90 16x2 Und ein RN Adapter Wannenstecker auf Steckklemmen.
Link zum Pollin Datenblatt:
http://www.pollin.de/shop/downloads/D120060D.PDF
Und hier noch eins:
20156
So nun wirds kompliziert, zumindestens für mich. Ich habe das Display wie folgt angeschlossen:
Pin1 GND am RN Adapter
Pin2 +5V am RN Adapter
Pin3 Leer
Pin4 auf Pin6 RN Adapter
Pin5 Leer
Pin6 auf Pin5 RN Adapter
Pin7 Leer
Pin8 Leer
Pin9 Leer
Pin10 Leer
Pinn11 auf Pin1 RN Adapter
Pinn12 auf Pin2 RN Adapter
Pinn13 auf Pin3 RN Adapter
Pinn14 auf Pin4 RN Adapter
Pinn15 +5V am RN Adapter
Der RN Adapter ist mit dem PortB verbunden
(gerade beim Tippen ist mir jetzt was aufgefallen. Am RN Adapter sind es Pin0-Pin7 und Im Bascom Pin1-bis Pin8 dann bin ich um ein Pin verschoben oder?)
Ich habe kein Poti dram um Kontrast zu regeln.
Eigentlich sollte doch auf dem Display Hallo Welt erscheinen. Aber das Display bleibt leer kein cursor kein Zeichen nur die Hintergrundbeleuchtung leuchtet.
Kann mir da jemand helfen bitte.
Und das ist mein Bascom Code:
Declare Sub Zufallszahlperseriellsenden()
'Declare Sub Motortest()
'Declare Sub Lauflicht()
'Declare Sub Showporta()
'Declare Sub Showdigitalporta()
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
Dim I As Integer
Dim N As Integer
Dim Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Lcdmode = Port
Cls
Locate 1 , 1
Lcd "Hallo Welt"
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL 1.4 *****"
Print "Eddies Test und Lernprogramm"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Zufallszahlperseriellsenden 'Batteriespannung 'Taste 1 Zeigt Bateriespannung über RS232 an
Case 2
Call Zufallszahlperseriellsenden 'Motortest 'Taste 2 Motoren beschleunigen und abbremsen
Case 3
Call Zufallszahlperseriellsenden 'Lauflicht 'Einige Male Lauflicht über LEDs anzeigen.
'Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Zufallszahlperseriellsenden 'Showporta 'Zeigt Messwerte an allen Port A PINs
Case 5
Call Zufallszahlperseriellsenden 'Showdigitalporta 'Zeigt digitalen I/O Zustand von PA0 bis PA5 an
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Ws < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
' Case Else
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Sub Zufallszahlperseriellsenden()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
A = Rnd(100)
B = Rnd(100)
C = Rnd(100)
D = Rnd(100)
Print Val(a) ; ";" ; Val(b) ; ";" ; Val(c) ; ";" ; Val(d) ; ";"
End Sub
'(
'dieser Abschnitt kommt oben nach Dim Vvolt rein
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Diese Unterfunktion zeigt Batteriespannung an
Sub Batteriespannung()
Local W As Word
Start Adc
W = Getadc(6)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
End Sub
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
' Einige Male Lauflicht über LEDs anzeigen. Am I2C-Port darf in diesem
' Moment nichts angeschlossen sein
Sub Lauflicht()
Config Portc = Output
Portd = 0
For N = 1 To 10
For I = 0 To 7
Portc.i = 0
Waitms 100
Portc.i = 1
Next I
Next N
Config Portc = Input
End Sub
'Zeigt die analogen Messwerte an Port A an
Sub Showporta()
Local Ws As Word
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelte Messwerte an Port A:"
For I = 0 To 7 ' Alle Eingänge inkl. messen
Start Adc
Ws = Getadc(i)
Volt = Ws * Ref
Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
Next I
End Sub
'Zeigt den Zustand einiger freier I/O von Die Analogen Messwerte An Port A An
Sub Showdigitalporta()
Local Zustand As String * 6
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelter I/O Zustand Port A:"
For I = 0 To 5 ' Alle Eingänge inkl. messen
If Pina.i = 1 Then
Zustand = "High"
Else
Zustand = "Low"
End If
Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand
Next I
End Sub
')
Ich habe RN-Control 1.4, ein LCD vom Pollin LCD YL 162-90 16x2 Und ein RN Adapter Wannenstecker auf Steckklemmen.
Link zum Pollin Datenblatt:
http://www.pollin.de/shop/downloads/D120060D.PDF
Und hier noch eins:
20156
So nun wirds kompliziert, zumindestens für mich. Ich habe das Display wie folgt angeschlossen:
Pin1 GND am RN Adapter
Pin2 +5V am RN Adapter
Pin3 Leer
Pin4 auf Pin6 RN Adapter
Pin5 Leer
Pin6 auf Pin5 RN Adapter
Pin7 Leer
Pin8 Leer
Pin9 Leer
Pin10 Leer
Pinn11 auf Pin1 RN Adapter
Pinn12 auf Pin2 RN Adapter
Pinn13 auf Pin3 RN Adapter
Pinn14 auf Pin4 RN Adapter
Pinn15 +5V am RN Adapter
Der RN Adapter ist mit dem PortB verbunden
(gerade beim Tippen ist mir jetzt was aufgefallen. Am RN Adapter sind es Pin0-Pin7 und Im Bascom Pin1-bis Pin8 dann bin ich um ein Pin verschoben oder?)
Ich habe kein Poti dram um Kontrast zu regeln.
Eigentlich sollte doch auf dem Display Hallo Welt erscheinen. Aber das Display bleibt leer kein cursor kein Zeichen nur die Hintergrundbeleuchtung leuchtet.
Kann mir da jemand helfen bitte.
Und das ist mein Bascom Code:
Declare Sub Zufallszahlperseriellsenden()
'Declare Sub Motortest()
'Declare Sub Lauflicht()
'Declare Sub Showporta()
'Declare Sub Showdigitalporta()
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
Dim I As Integer
Dim N As Integer
Dim Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Lcdmode = Port
Cls
Locate 1 , 1
Lcd "Hallo Welt"
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print "**** RN-CONTROL 1.4 *****"
Print "Eddies Test und Lernprogramm"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Zufallszahlperseriellsenden 'Batteriespannung 'Taste 1 Zeigt Bateriespannung über RS232 an
Case 2
Call Zufallszahlperseriellsenden 'Motortest 'Taste 2 Motoren beschleunigen und abbremsen
Case 3
Call Zufallszahlperseriellsenden 'Lauflicht 'Einige Male Lauflicht über LEDs anzeigen.
'Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Zufallszahlperseriellsenden 'Showporta 'Zeigt Messwerte an allen Port A PINs
Case 5
Call Zufallszahlperseriellsenden 'Showdigitalporta 'Zeigt digitalen I/O Zustand von PA0 bis PA5 an
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Ws < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
' Case Else
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Sub Zufallszahlperseriellsenden()
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
A = Rnd(100)
B = Rnd(100)
C = Rnd(100)
D = Rnd(100)
Print Val(a) ; ";" ; Val(b) ; ";" ; Val(c) ; ";" ; Val(d) ; ";"
End Sub
'(
'dieser Abschnitt kommt oben nach Dim Vvolt rein
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Diese Unterfunktion zeigt Batteriespannung an
Sub Batteriespannung()
Local W As Word
Start Adc
W = Getadc(6)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
End Sub
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
' Einige Male Lauflicht über LEDs anzeigen. Am I2C-Port darf in diesem
' Moment nichts angeschlossen sein
Sub Lauflicht()
Config Portc = Output
Portd = 0
For N = 1 To 10
For I = 0 To 7
Portc.i = 0
Waitms 100
Portc.i = 1
Next I
Next N
Config Portc = Input
End Sub
'Zeigt die analogen Messwerte an Port A an
Sub Showporta()
Local Ws As Word
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print "Ermittelte Messwerte an Port A:"
For I = 0 To 7 ' Alle Eingänge inkl. messen
Start Adc
Ws = Getadc(i)
Volt = Ws * Ref
Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
Next I
End Sub
'Zeigt den Zustand einiger freier I/O von Die Analogen Messwerte An Port A An
Sub Showdigitalporta()
Local Zustand As String * 6
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerstände ein, bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print "Ermittelter I/O Zustand Port A:"
For I = 0 To 5 ' Alle Eingänge inkl. messen
If Pina.i = 1 Then
Zustand = "High"
Else
Zustand = "Low"
End If
Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand
Next I
End Sub
')