Hallo
Kannst du denn an den Pins von Portc eine Spannung messen. Spannung an AVCC korrekt ? Kabelbruch ?
Ansonsten einfach mal ein kleines Testprogramm schreiben und jeden PIN einzel prüfen bis zum Display, ist ja nicht der Aufwand.
MFG
Dieter
*murmel* einfach ignorieren..... einfach iiiignorieeeeren */murmel*
-> MEIN PROJEKTBLOG <-
Hallo
Kannst du denn an den Pins von Portc eine Spannung messen. Spannung an AVCC korrekt ? Kabelbruch ?
Ansonsten einfach mal ein kleines Testprogramm schreiben und jeden PIN einzel prüfen bis zum Display, ist ja nicht der Aufwand.
MFG
Dieter
es ist eine feststellung, das Bascom unvollkommen ist.
der starke avr-fan hat nach einigen wochen keinerlei möglichkeiten mehr, den AVR damit auszureizen, weil alles nur eine vorgebene stupide eingabe von basicworten sind die man im nachhinein nicht mehr beeinflussen kann wie bei winavr-c und fastavr-basic (erzeugt 100% asm-code für den assembler des entwicklerproduktes > avr-studio) .
durch Bascom verliert der AVR seinen inneren reiz und das ist schade.
mfg pebisoft
ich hab jetzt ein zweites display getestet, von dem ich weiss, dass es funktioniert. negativ. ich werde wohl mal alle pins einzeln testen, das wird das beste sein.
-> MEIN PROJEKTBLOG <-
Ich fürchte, das ist der letzte verbleibende und erfolgversprechende Weg. Irgendwo hängt es nun mit Sicherheit an der Harware. Viel Glück!Zitat von Goblin
Grüße
Henrik
so, also ich hab 6 leds an den port gehängt (PC0..5) auf masse gehängt (ja, ich weiss, auf +5V kann ich mehr leistung hängen) und ein lauflicht geproggt, was VOR dem eigentlichen LCD-Prog abläuft. Hier der Code:
Die LEDS (bzw natürlich der controller) machen nun folgendes:Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 9600 'Config Portc = Output 'Config Portd = Output 'Config Portb = Output Portc = 00000000 Wait 1 Portc.0 = 1 Wait 1 Portc.1 = 1 Wait 1 Portc.2 = 1 Wait 1 Portc.3 = 1 Wait 1 Portc.4 = 1 Wait 1 Portc.5 = 1 Wait 1 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 1 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0 , Db7 = Portc.5 , Db6 = Portc.4 , Db5 = Portc.3 , Db4 = Portc.2 Config Lcdmode = Port ' LCDmode = Pin wurde auch mit negativem Resultat getestet Config Lcdbus = 4 Initlcd Wait 1 Cls Lcd "hello world"
nach start des Programms blitzen ein paar von ihnen kurz auf. ich denke das ist die stelle wo das lcd initialisiert wird. dann leuchten alle mit 1 sec. verzögerunge dazwischen hintereinander auf. wenn alle an sind gehen später (ca 1 sec später) alle aus bis auf die an c3 und 4. . dann gehen eine sec später alle wieder an und verlöschen nach 10 sec flackernd. dann wird das prog neu gestartet.
fusebitz:
Bild hier
wie gehabt...
was hab ich an den bits falsch eingestellt?
-> MEIN PROJEKTBLOG <-
ICh hab mir dein Programm mal angesehen, wegen der Interpretaion deiner LED:
Jetzt seh' ich mir nochmal genauer das LCD-Zeugs an, erwarte allerdings keine Weisheiten.Code:L_0x0026: LDI r24,0x5F OUT SPL,r24 ; Stack LDI YL,0x20 LDI ZL,0xB8 MOV r4,ZL ; Frame LDI r24,0x04 OUT SPH,r24 ; Stack LDI YH,0x04 ; Softstack LDI ZH,0x03 ; Softstack MOV r5,ZH ; Frame ;----------------------------------------------------------------- ; clear SRAM LDI ZL,0xFE LDI ZH,0x03 LDI XL,0x60 LDI XH,0x00 CLR r24 L_0x0044: ST X+,r24 SBIW ZL,0x0001 BRNE L_0x0044 ; clear SRAM ;----------------------------------------------------------------- LDI r24,0x06 OUT UBRRL,r24 ; $BAUD LDI r24,0x00 OUT UBRRH,r24 ; $BAUD LDI r24,0x18 OUT UCSRB,r24 ;----------------------------------------------------------------- RCALL L_0x00D4 ; INITLCD ;----------------------------------------------------------------- CLR r6 ; clear ERR ;----------------------------------------------------------------- ; ;----------------------------------------------------------------- LDI r24,0x00 OUT PORTC,r24 ; Portc = 00000000 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC0 ; portc.0 = 1 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC1 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC2 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC3 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC4 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- SBI PORTC,PC5 ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- ; Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 1 ;----------------------------------------------------------------- LDI r24,0x87 ; URSEL OUT UBRRH,r24 ;----------------------------------------------------------------- RCALL L_0x00D4 ; INITLCD ;----------------------------------------------------------------- LDI ZL,0x01 LDI ZH,0x00 RCALL L_0x00C2 ; WAIT 1 ;----------------------------------------------------------------- RCALL L_0x00B8 ; CLS ;----------------------------------------------------------------- LDI ZL,0xEA LDI ZH,0x01 RCALL L_0x00AC ; LCD "hello wordl" ;----------------------------------------------------------------- ; END ;----------------------------------------------------------------- CLI L_0x00AA: RJMP L_0x00AA ; loop ;----------------------------------------------------------------
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Schreib einfach mal unter das Lcd "hello world"
Waitms 5000 und mach ne schleife in das Programm sonst kann das ganze doch nicht funzen! Denkt doch mal selbst drüber nach! Probieren geht über studieren!
Achso dein FUSEbits problem.... unter artikel hier im Forum steht wie man die Bits setzt. https://www.roboternetz.de/phpBB2/ze...trag.php?t=849
Hoffe du hast den Atmel nich schon kaputt geflasht...!
Achso uns hier mal nen ganz einfaches TUT für Bascom:
http://staff.ltam.lu/feljc/Documents/AVR_HowTo.doc
anschauen lohnt!
Mfg Timo
@ picnick: was wolltest du mir mit dem assemblercode sagen?
@ omit: was bringt mir ne schleife? ich meine warum sollte das lcd nicht ihne schleife funzen? das hat afaik nen ram, in das geschrieben wird und der text bleibt so lange, bis es nen neuen gibt oder der saft abgedreht wird.
fusebits: ja, die seite kenn ich schon auswendig... muss noch mal ein wenig mit den fb's experimentieren. sag mal bitte was ich AUF KEINEN FALL tun darf. (den reset-pin nicht als i/o-pin einstellen weiss ich. sonst ists vorbei mit isp).
das howto: habs gesaugt und werds mal anschauen! danke!
-> MEIN PROJEKTBLOG <-
es gibt 4-zeilen-lcd, die 2 controller drauf haben und die dann einzeln aktiviert werden müssen.
mfg pebisoft
Lesezeichen