Datum:
Ich hab ein Display welches ich kurz testen will obs geht und wollt mal fragen ob mir mal schnell einer helfen kann mit einem gcc testcode. Unter http://cbradio.cz/pcbazar/lcd/01/pdf/LCM_Info.pdf habe ich folgenden code gefunden.
while (1) { for ( y = 0; y < 32; y++ ) { for ( x = 0; x < 15; x++ ) { data = 0xF0; BitShiftTimingZeile(data); } for ( x = 0; x < 15; x++ ) { data = 0x0F; BitShiftTimingZeile(data); } } } |
Meine frage ist da ich mit gcc noch keine erfahrung hab ob mir das einer so umsetzten kann das ich das display kurz testen kann. Ich weiß zum bsp nicht was es mit BitShiftTimingZeile auf sich hat und wie das mit den variablen deklarieren funktioniert. Quasi "Copy/Past - Compilieren - Hochladen - Testen".
Datum:
Holger Schreiber schrieb: > Quasi "Copy/Past - Compilieren - > Hochladen - Testen". Klar du willst dass dir hier jemand mal schnell nen Code üfr dein Display schreibt. Mehr nicht. Dreist.
Datum:
Einen Testcode damit ich sehe ob das ding noch geht sowas ham einige garantiert sogar irgendwo noch auf platte liegen. Ich will keine ansteuerung mit menu etc nur diesen einen testcode meinetwegen auch als hexfile fals jemand denkt ich will es nur haben weil ich abkupfern will. Display : LCM553-60601 Port : D0-5 MC : Atmega32
Datum:
Ich hab nun folgenden code gefunden allerdings wundert es mich das hier auch asm befehle eingebettet sind. Wie ihr euch vorstellen könnt meckert der compiler rum :/ Wie gesagt will nur testen ob das ding noch in ordnung ist nicht das ich teste und mache und das ding ist futsch und ich wundere mich ewig warum es nicht geht.
Warning 6 control reaches end of non-void function C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 44 1 AVRGCC2 Warning 3 implicit declaration of function 'cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 18 2 AVRGCC2 Warning 4 implicit declaration of function 'sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 18 2 AVRGCC2 Warning 5 implicit declaration of function 'sei' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 61 2 AVRGCC2 Warning 1 return type defaults to 'int' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 14 1 AVRGCC2 Warning 2 type of '__vector_11' defaults to 'int' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\AVRGCC2.c 14 1 AVRGCC2 Error 7 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 18 1 AVRGCC2 Error 9 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 19 1 AVRGCC2 Error 12 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 23 1 AVRGCC2 Error 13 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 24 1 AVRGCC2 Error 15 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 28 1 AVRGCC2 Error 17 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 29 1 AVRGCC2 Error 19 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 31 1 AVRGCC2 Error 21 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 33 1 AVRGCC2 Error 23 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 37 1 AVRGCC2 Error 25 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 39 1 AVRGCC2 Error 26 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 40 1 AVRGCC2 Error 28 undefined reference to `cbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 55 1 AVRGCC2 Error 8 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 18 1 AVRGCC2 Error 10 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 19 1 AVRGCC2 Error 11 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 20 1 AVRGCC2 Error 14 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 28 1 AVRGCC2 Error 16 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 29 1 AVRGCC2 Error 18 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 30 1 AVRGCC2 Error 20 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 32 1 AVRGCC2 Error 22 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 36 1 AVRGCC2 Error 24 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 38 1 AVRGCC2 Error 27 undefined reference to `sbi' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 54 1 AVRGCC2 Error 29 undefined reference to `sei' C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\AVRStudio\AVRGCC2\AVRGCC2\Debug/.././AVRGCC2.c 61 1 AVRGCC2 |
/* * AVRGCC2.c * * Created: 19.02.2012 21:21:25 * Author: Capa */ #include <avr/io.h> #include <stdint.h> char z[60]; uint16_t c; SIGNAL(SIG_OVERFLOW0) { unsigned char a,i,j; TCCR0=(0<<CS00); if(PORTC&0b00000100)cbi(PORTC,2); else sbi(PORTC,2); if(PORTD&0b00000100)cbi(PORTD,2); else sbi(PORTD,2); sbi(PORTD,1); for(i=0;i<16;i++) { cbi(PORTD,0); cbi(PORTD,5); a=i+16; for(j=0;j<60;j++) { if(z[59-j]==i) sbi(PORTD,0); else cbi(PORTD,0); if(z[59-j]==a) sbi(PORTD,5); else cbi(PORTD,5); sbi(PORTD,4); cbi(PORTD,4); sbi(PORTD,4); cbi(PORTD,4); } sbi(PORTD,3); cbi(PORTD,3); sbi(PORTD,3); cbi(PORTD,3); cbi(PORTD,1); } TCCR0=(1<<CS00); } int main(void) { TCCR0=(1<<CS00); TIMSK=(1<<TOIE0); DDRD|=0b00111111; DDRC|=0b00000100; sbi(PORTD,2); cbi(PORTC,2); for (c=0;c<60;c++) { z[c]=c>>1; } sei(); } |
Datum:
Hab mal versucht das ganze anzupassen ich hoffe nur ich habs richtig verstanden, cbi setzt ja 0 und sbi setzt 1. Nun hab ich nur noch ein Problem mit *sei();* wie ich das in c imortiere hab ich noch nicht rausgefunden.
/* * AVRGCC2.c * * Created: 19.02.2012 21:21:25 * Author: Capa */ #include <avr/io.h> #include <stdint.h> char z[60]; uint16_t c; SIGNAL(SIG_OVERFLOW0) { unsigned char a,i,j; TCCR0=(0<<CS00); if(PORTC&0b00000100) PORTC |= (0<<PC2); else PORTC |= (1<<PC2); if(PORTD&0b00000100) PORTD |= (0<<PD2); else PORTD |= (1<<PD2); PORTD |= (1<<PD1); for(i=0;i<16;i++) { PORTD |= (0<<PD0); PORTD |= (0<<PD5); a=i+16; for(j=0;j<60;j++) { if(z[59-j]==i) PORTD |= (1<<PD0); else PORTD |= (0<<PD0); if(z[59-j]==a) PORTD |= (1<<PD5); else PORTD |= (0<<PD5); PORTD |= (1<<PD4); PORTD |= (0<<PD4); PORTD |= (1<<PD4); PORTD |= (0<<PD4); } PORTD |= (1<<PD3); PORTD |= (0<<PD3); PORTD |= (1<<PD3); PORTD |= (0<<PD3); PORTD |= (0<<PD1); } TCCR0=(1<<CS00); } int main(void) { TCCR0=(1<<CS00); TIMSK=(1<<TOIE0); DDRD|=0b00111111; DDRC|=0b00000100; PORTD |= (1<<PD2); PORTC |= (0<<PC2); for (c=0;c<60;c++) { z[c]=c>>1; } sei(); } |
Datum:
Au Backe, viel Erfahrung hast du nicht.... Das sind keine "ASM Befehle" das sind normale C Funktionen bzw. Makros. sbi und cbi sind deprecated und sind nun in der compat/depreacted.h zu finden. sei() und cli() sind kommen aus der interrupt.h. Die Header musst du halt einbinden. Deshalb wird auch die SIGNAL Funktion nur mit meckern akzeptiert. Das ist aber inzwischen auch veraltet und man verwendet eigentlich nur noch ISR(interrupt vector). Warum schreibst du nicht einfach eine Testansteuerung aus dem Datenblatt? Du willst doch das DIsplay auch irgendwie benutzen und nicht nur testen oder? Dann brauchst du doch sowieso Code den du auch verstehst.
Datum:
Soviel übrigens zum Thema copy&paste von Code. Sowas klappt praktisch NIE NIE NIE so wie du dir das vorstellst. Da ist immer portierungsarbeit angesagt. Und wofür? Einen Test? Und danach? Darum ist deine Eingangsfrage auch suboptimal und die Masse an Antworten zeigen dir dies auch. Also lass doch mal raus was du WIRKLICH WILLST. Oder bist du LCD Tester von Beruf. Wohl kaum.
Datum:
Schau mal bei Gelegenheit da rein: http://www.nongnu.org/avr-libc/user-manual/modules.html scheint nötig zu sein.
Datum:
Grml schrieb: > Also lass doch mal raus was du WIRKLICH WILLST. Oder bist du LCD Tester > von Beruf. Wohl kaum. Das sagte ich bereits mehrfach ich will wissen ob das ding noch funktioniert das ich mit c noch nie was gemacht hab sagte ich bereits. Ebenso hab ich in mehreren Threads erwähnt das ich anfänger bin und mich mit asm beschäftigt hatte für den anfang. Das da einfach nen include gefehlt hat hab ich dann auch mitbekommen nachdem ichs auf einer seite gelesen hatte.
Datum:
Holger Schreiber schrieb: > Das da einfach nen include gefehlt hat hab ich dann auch mitbekommen > nachdem ichs auf einer seite gelesen hatte. Ja sorry warum fragst du dann wenn du keine Antworten darauf willst. Ausserdem fehlen da mindestens 2 includes. Und geht dein Display nun? Sollte ja jetzt ein Klacks sein. Mach doch mal nen Bild von Display (in aktion natürlich). Würde mich interessieren. Wo gibts das? Kosten?
Datum:
> Und geht dein Display nun?
Kann ich mir nicht vorstellen
zb
PORTC |= (0<<PC2);
else
PORTC |= (1<<PC2);
Da fehlts an den allereinfachsten Basics.
Und genau darum ist ein GLCD 5 Schuhnummern zu groß für den TO.
Datum:
Grml schrieb: > Und da ward er auch nie mehr gesehen wer wurd nicht wieder gesehen ? wenn du mich meinst, sorry arbeitende bevölkerung und so 5 schuhnummern zu groß, mag sein mir gings nur darum ob das ding funktioniert und ichs wieder einlagern kann bis ichs benutzen kann oder ob ichs in die tonne hauen kann. Mehr wollte ich nicht machen, darauf hab ich aber mehrmals hingewiesen das ich nur wissen will ob das ding funktioniert. Nicht wie, sondern ob!
Datum:
Holger Schreiber schrieb: > Grml schrieb: >> Und da ward er auch nie mehr gesehen > > wer wurd nicht wieder gesehen ? > wenn du mich meinst, sorry arbeitende bevölkerung und so > > > 5 schuhnummern zu groß, mag sein mir gings nur darum ob das ding > funktioniert und ichs wieder einlagern kann bis ichs benutzen kann oder > ob ichs in die tonne hauen kann. Mehr wollte ich nicht machen, darauf > hab ich aber mehrmals hingewiesen das ich nur wissen will ob das ding > funktioniert. Nicht wie, sondern ob! Ja das geht aber halt nicht so einfach, genau das versuche ich (und nicht nur ich) dir zu sagen. Es ist kein großer Unterschied zwischen "testen" und "benutzen". Für beides brauchst du eine komplette Ansteuerung. Und die ist bei dem Display nicht ohne, und da ist sowohl copy&paste als auch selber schreiben eine Herausforderung. Grade wenn man nichtmal C kann. Selber schreiben bietet sich hier sogar noch an weil eine Portierung oftmals stressiger ist. Genau das willst du einfach nicht kapieren. Beratungsresistent nennt man das. Aber zum Thema zurück. Funktionierts denn jetzt? Auch meine anderen Fragen nach dem Display hast du geflissentlich ignoriert. Schade, du scheinst nur Infos bekommen zu wollen, welche geben willst du nicht.
Datum:
Das Display muss ich vor langer zeit irgendwann mal bei pollin gekauft haben, ka wie teuer es war. Es zeigt immo 2 Schwarze striche an mit dem alten code (den mit sbi/cbi) hab heute noch nicht groß nachgeschaut da ich immo etwas beschäftigt bin.