Hi, ich habe nun das Pollin Eval Board und das Addon Board, und da die letzten Tage alles mögliche mit rumprobiert.
Nun Mache ich gerade ein Led Lauflicht, und es sollen Daten auf dem Display ausgegeben werden:
Im mitgelieferten Beispielprogramm funktionierte das Display. Der einzigste unterschied zum jetziegen ist da die pinbelegung, vorher waren die leitungen db4-db7 an Pb2-Pb5 und e an pb6 und RS an pb7.Code:$regfile = "m32def.dat" 'Taktfrequenz 16MHz $crystal = 16000000 'Baudrate für UART $baud = 9600 'Setzt den verfügbaren Speicher für den Frame $framesize = 32 'Setzt den verfügbaren Speicher für den Software Stack $swstack = 32 'Setzt den verfügbaren Speicher für den Hardware Stack $hwstack = 32 '************************************** '********* Variablen ********** '************************************** Declare Sub Tastenabfrage Declare Sub Lauflicht1 Declare Sub Lauflicht2 Declare Sub Lauflicht3 Declare Sub Lauflicht4 Dim Modus As Integer Dim Speed As Integer Dim I As Integer '************************************** '********* Namenszuweisung ********** '************************************** Lcd_db4 Alias Porta.4 Lcd_db5 Alias Porta.5 Lcd_db6 Alias Porta.6 Lcd_db7 Alias Porta.7 Lcd_e Alias Portb.0 Lcd_rs Alias Portb.1 Led1 Alias Portc.0 Led2 Alias Portc.1 Led3 Alias Portc.2 Led4 Alias Portc.3 Led5 Alias Portc.4 Led6 Alias Portc.5 Led7 Alias Portc.6 Led8 Alias Portc.7 Led9 Alias Portd.5 Led10 Alias Portd.6 Taste1port Alias Porta.0 Taste1 Alias Pina.0 Taste2port Alias Porta.1 Taste2 Alias Pina.1 Taste3port Alias Porta.2 Taste3 Alias Pina.2 Taste4port Alias Porta.3 Taste4 Alias Pina.3 Audio Alias Portd.7 Schrittmotorschalter1port Alias Portb.3 Schrittmotorschalter1 Alias Pinb.3 Schrittmotorschalter2port Alias Portb.2 Schrittmotorschalter2 Alias Pinb.2 Schrittmotor1 Alias Portb.4 Schrittmotor2 Alias Portd.2 Schrittmotor3 Alias Portd.3 Schrittmotor4 Alias Portd.4 '************************************** '********* LCD-Konfiguration ********** '************************************** 'LCD-Pins konfigurieren Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs 'LCD als 16x2 Zeichen konfigurieren Config Lcd = 16 * 2 'LCD wird im 4-Bit-Modus betrieben Config Lcdbus = 4 '************************************** '********* Port-Konfiguration ********* '************************************** 'LED-Ausgänge Config Led1 = Output Config Led2 = Output Config Led3 = Output Config Led4 = Output Config Led5 = Output Config Led6 = Output Config Led7 = Output Config Led8 = Output Config Led9 = Output Config Led10 = Output 'Tasteneingang Config Taste1port = Input Config Taste2port = Input Config Taste3port = Input Config Taste4port = Input 'Audio-Ausgang (Summer und NF Verstärker) Config Audio = Output 'Schrittmotorplatine Ein/Ausgänge Config Schrittmotor1 = Output Config Schrittmotor2 = Output Config Schrittmotor3 = Output Config Schrittmotor4 = Output Config Schrittmotorschalter1port = Input Config Schrittmotorschalter2port = Input '************************************** '******** LCD initialisieren ********** '************************************** Initlcd 'Display löschen Cls 'Anfang Eigendliches Programm Modus = 1 Speed = 50 Locate 1 , 1 Lcd "LED Lauflicht von" Locate 2 , 1 Lcd "Jens Roeckert" While Taste1 = 0 Wend Cls Locate 1 , 1 Lcd "Mit den Tastern" Locate 2 , 1 Lcd "1-4 die Art des" While Taste1 = 0 Wend Cls Locate 1 , 1 Lcd "Lauflichtes" Locate 2 , 1 Lcd "einstellen." While Taste1 = 0 Wend Locate 1 , 1 Lcd "LED Lauflicht" 'Endlosschleife Do Gosub Tastenabfrage If Modus = 1 Then Locate 2 , 2 Lcd "Modus 1" Gosub Lauflicht1 End If If Modus = 2 Then Locate 2 , 2 Lcd "Modus 2" Gosub Lauflicht2 End If If Modus = 3 Then Locate 2 , 2 Lcd "Modus 3" Gosub Lauflicht3 End If If Modus = 4 Then Locate 2 , 2 Lcd "Modus 4" Gosub Lauflicht4 End If Loop 'Programmende End Sub Tastenabfrage If Taste1 = 1 Then Modus = 1 End If If Taste2 = 1 Then Modus = 2 End If If Taste3 = 1 Then Modus = 3 End If If Taste4 = 1 Then Modus = 4 End If End Sub Sub Lauflicht1 Led1 = 1 Waitms Speed Led1 = 0 Led2 = 1 Waitms Speed Led2 = 0 Led3 = 1 Waitms Speed Led3 = 0 Led4 = 1 Waitms Speed Led4 = 0 Led5 = 1 Waitms Speed Led5 = 0 Led6 = 1 Waitms Speed Led6 = 0 Led7 = 1 Waitms Speed Led7 = 0 Led8 = 1 Waitms Speed Waitms Speed Led8 = 0 Led7 = 1 Waitms Speed Led7 = 0 Led6 = 1 Waitms Speed Led6 = 0 Led5 = 1 Waitms Speed Led5 = 0 Led4 = 1 Waitms Speed Led4 = 0 Led3 = 1 Waitms Speed Led3 = 0 Led2 = 1 Waitms Speed Led2 = 0 Led1 = 1 Waitms Speed End Sub Sub Lauflicht2 Led1 = 1 Waitms Speed Led2 = 1 Waitms Speed Led3 = 1 Waitms Speed Led4 = 1 Waitms Speed Led5 = 1 Waitms Speed Led6 = 1 Waitms Speed Led7 = 1 Waitms Speed Led8 = 1 Waitms Speed Led1 = 0 Waitms Speed Led2 = 0 Waitms Speed Led3 = 0 Waitms Speed Led4 = 0 Waitms Speed Led5 = 0 Waitms Speed Led6 = 0 Waitms Speed Led7 = 0 Waitms Speed Led8 = 0 Waitms Speed End Sub Sub Lauflicht3 Led1 = 1 Led8 = 1 Waitms Speed Led1 = 0 Led8 = 0 Led2 = 1 Led7 = 1 Waitms Speed Led2 = 0 Led7 = 0 Led3 = 1 Led6 = 1 Waitms Speed Led3 = 0 Led6 = 0 Led4 = 1 Led5 = 1 Waitms Speed Led4 = 0 Led5 = 0 Waitms Speed Led4 = 1 Led5 = 1 Waitms Speed Led4 = 0 Led5 = 0 Led3 = 1 Led6 = 1 Waitms Speed Led3 = 0 Led6 = 0 Led2 = 1 Led7 = 1 Waitms Speed Led2 = 0 Led7 = 0 Led1 = 1 Led8 = 1 Waitms Speed Led1 = 0 Led8 = 0 Waitms Speed End Sub Sub Lauflicht4 For I = 0 To 255 Portc = I Waitms Speed Next I End Sub
Nun sind sie per jumper auf dem board an die Pinne gelegt, wie es in den Alias zuweisungen im programm ersichtlich ist.
Masse ist natürlich auch an den anderen pinnen.
Das Programm läuft und macht was es soll, nur das auf dem Display nichts angezeigt wird ??? die beleuchtung ist an, der Kontrastregler steht auch passend.
Warum gehts im Beispielproggramm und in dem nu nicht ?
Hier ist nochmal der Code vom Beispielprogramm:
Code:'*************************************************************************************** ' 'ACHTUNG! 'Sie handeln auf eigene Gefahr! 'Bei diesen Daten handelt es sich um Beispielanwendungen die nicht für den produktiven 'Einsatz geeignet sind. 'Pollin Electronic gibt keine Garantien irgendeiner Art, weder ausdrücklich 'noch implizit, einschließlich unbegrenzt aller Garantien der Verwendbarkeit 'dieser Daten für einen bezeichneten oder nicht bezeichneten Zweck. 'Pollin Electronic ist nicht haftbar für jedwede Folgeschäden die aufgrund 'der Benutzung dieser Daten entstehen. Dies gilt auch dann, wenn 'Pollin Electronic von der Möglichkeit eines solchen Schadens unterrichtet worden ist. ' 'Testprogramm fuer ATTiny2313, ATMega8, ATMega16, ATMega32, 'ATMEL Evaluations-Board Best.Nr. 810 038 und 'ATMEL Addon-Board V1.0 Best.Nr. 810 053 '*************************************************************************************** $regfile = "m32def.dat" 'Taktfrequenz 1MHz $crystal = 16000000 'Baudrate für UART $baud = 2400 #if _chip = 0 'Tiny 2313 Lcd_db4 Alias Portb.2 Lcd_db5 Alias Portb.3 Lcd_db6 Alias Portb.4 Lcd_db7 Alias Portb.5 Lcd_e Alias Portb.6 Lcd_rs Alias Portb.7 Led5 Alias Portd.3 Led6 Alias Portd.4 Led7 Alias Portd.5 Led8 Alias Portd.6 Ir Alias Pind.2 Irport Alias Portd.2 #endif #if _chip = 17 'Mega8 Lcd_db4 Alias Portb.0 Lcd_db5 Alias Portb.1 Lcd_db6 Alias Portb.2 Lcd_db7 Alias Portb.3 Lcd_e Alias Portb.4 Lcd_rs Alias Portb.5 Led1 Alias Portc.2 Led2 Alias Portc.3 Led3 Alias Portc.4 Led4 Alias Portc.5 Led5 Alias Portd.3 Led6 Alias Portd.4 Led7 Alias Portd.5 Led8 Alias Portd.6 Taste1port Alias Portc.1 Taste1 Alias Pinc.1 Summer Alias Portd.7 Ir Alias Pind.2 Irport Alias Portd.2 Nf Alias Portc.0 #endif #if _chip = 18 'Mega16 Lcd_db4 Alias Portb.2 Lcd_db5 Alias Portb.3 Lcd_db6 Alias Portb.4 Lcd_db7 Alias Portb.5 Lcd_e Alias Portb.6 Lcd_rs Alias Portb.7 Led1 Alias Porta.2 Led2 Alias Porta.3 Led3 Alias Porta.4 Led4 Alias Porta.5 Led5 Alias Portd.3 Led6 Alias Portd.4 Led7 Alias Portd.5 Led8 Alias Portd.6 Taste1port Alias Porta.1 Taste1 Alias Pina.1 Summer Alias Portd.7 Ir Alias Pind.2 Irport Alias Portd.2 Nf Alias Porta.0 #endif #if _chip = 23 'Mega32 Lcd_db4 Alias Portb.2 Lcd_db5 Alias Portb.3 Lcd_db6 Alias Portb.4 Lcd_db7 Alias Portb.5 Lcd_e Alias Portb.6 Lcd_rs Alias Portb.7 Led1 Alias Porta.2 Led2 Alias Porta.3 Led3 Alias Porta.4 Led4 Alias Porta.5 Led5 Alias Portd.3 Led6 Alias Portd.4 Led7 Alias Portd.5 Led8 Alias Portd.6 Taste1port Alias Porta.1 Taste1 Alias Pina.1 Summer Alias Portd.7 Ir Alias Pind.2 Irport Alias Portd.2 Nf Alias Porta.0 #endif Dim Username As String * 20 Dim W As Byte Dim I As Byte Dim Adresse As Byte Dim Kommando As Byte '************************************** '********* LCD-Konfiguration ********** '************************************** 'LCD als 16x2 Zeichen konfigurieren Config Lcd = 16 * 2 'LCD-Pins konfigurieren Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs 'LCD wird im 4-Bit-Modus betrieben Config Lcdbus = 4 '************************************** '********* Port-Konfiguration ********* '************************************** 'LED-Ausgänge #if _chip <> 0 Config Led1 = Output Config Led2 = Output Config Led3 = Output Config Led4 = Output #endif Config Led5 = Output Config Led6 = Output Config Led7 = Output Config Led8 = Output 'Tasteneingang #if _chip <> 0 Config Taste1port = Input #endif 'IR-Eingang Config Rc5 = Ir Irport = 1 'NF-Ausgang #if _chip <> 0 Config Nf = Output #endif '************************************** '******** LCD initialisieren ********** '************************************** Initlcd 'Display löschen Cls #if _chip <> 0 '************************************** '*** 3x Test-Tonausgabe auf Summer **** '************************************** 'Uart-TextAusgabe Print "Summertest" For I = 1 To 3 'Displayposition Zeile 1, Position 1 Locate 1 , 1 'Display-Textausgabe Lcd "Summertest" 'Displayposition Zeile 2, Position 1 Locate 2 , 1 'Display-Textausgabe Lcd "Durchgang " Lcd I 'eigentliche Soundausgabe auf den Summer For W = 20 To 250 Sound Summer , 2 , W Next Next Cls '************************************** '** 3x Test-Tonausgabe NF-Verstärker ** '************************************** Cls 'Uart-TextAusgabe Print "NF-Verstaerker-Test" For I = 1 To 3 'Displayposition Zeile 1, Position 1 Locate 1 , 1 'Display-Textausgabe Lcd "NV-Verstaerker" 'Displayposition Zeile 2, Position 1 Locate 2 , 1 'Display-Textausgabe Lcd "Testlauf " Lcd I 'eigentliche Soundausgabe For W = 20 To 250 Sound Nf , 2 , W Next Next #endif '************************************** '************* LED-Test *************** '************************************** Cls Print "LED-Test" Print "LEDs an" Locate 1 , 1 Lcd "LED-Test" Locate 2 , 1 Lcd "LEDs an" #if _chip <> 0 Set Led1 Set Led2 Set Led3 Set Led4 #endif Set Led5 Set Led6 Set Led7 Set Led8 Wait 2 #if _chip <> 0 Reset Led1 Reset Led2 Reset Led3 Reset Led4 #endif Reset Led5 Reset Led6 Reset Led7 Reset Led8 Locate 2 , 1 Lcd "LEDs aus" Print "LEDs aus" Wait 1 #if _chip <> 0 '************************************** '************* Tasten-Test ************ '************************************** Cls Print "Tasten-Test" Locate 1 , 1 Lcd "Tasten-Test" For I = 1 To 3 Led8 = 1 Led7 = 0 Locate 2 , 1 Lcd "Taste 1 druecken" Print "Taste 1 druecken" While Taste1 = 0 Wend Led8 = 0 Led7 = 1 Locate 2 , 1 Lcd "Taste1 gedrueckt" Print "Taste1 gedrueckt" While Taste1 = 1 Wend Next Reset Led1 Reset Led7 #endif '************************************** '************ UART-Test *************** '************************************** Cls Locate 1 , 1 Lcd "UART-Test" Locate 2 , 1 Lcd "Namen eingeben" 'Auf Benutzerdaten über serielle Schnittstelle warten 'Ende wird erkannt durch CR+LF Input "Wie ist Ihr Name?: " , Username Print "Hi " ; Username ; " auch die UART-Kommunikation funktioniert" Cls Locate 1 , 1 Lcd "Hi " Lcd Username Wait 2 '************************************** '************ IR-Test ***************** '************************************** Enable Interrupts Cls Locate 1 , 1 Lcd "RC5 IR-Test" Print "RC5 IR-Test" I = 3 Do 'Auf RC5-Kommando warten Getrc5(adresse , Kommando) 'test ob Adresse gültig ist If Adresse < 255 Then 'falls ja, dann anzeigen Kommando = Kommando And &B01111111 ' Togglebit löschen Cls Locate 1 , 1 Lcd "RC5-Kommando " Lcd Kommando Print "RC5-Kommando " ; Kommando I = I - 1 End If If I = 0 Then Exit Do Waitms 200 Loop Disable Interrupts '************************************** '***** Displayausgabe Test beendet **** '************************************** Print "Testlauf beendet" Cls Locate 1 , 1 Lcd "Testlauf beendet" 'Endlosschleife Do Loop 'Programmende End
Hoffe ihr könnt mir da was zu sagen, ich kann da nichts finden. Die Leds tatens erst auch nicht alle, bis ich rausgefunden habe das ich in den fusebits das Jtag ausschalten muss. Ist da evt noch etwas weshalb das display nun nichts ausgibt >?
Danke schonmal







Zitieren

Lesezeichen