Hi @all, ich habe folgendes Problem, ich habe es endlich geschaft mein Grafik LCD Display (KS0108B) halbwegs anzusteuern (manuell, also sprich per feste befehle). Das Problem ist das DB0-3 an PortC und DB4-7 an PortB liegen. Gibt es eine möglichkeit, das ich z.b. ein Register wie z.b. 0b11110000 so aufzusplitten, das jetzt die ersten bits 0-3 auf PortC Pin 2-5 ausgegeben werden und die anderen bits 4-7 auf PortD ausgegeben werden ?! Muss ich das irgendwie mit Bitshifting machen ?! Ich grübel schon die ganze zeit. Stoße da schon an meine grenzen wenn es darum geht die Page festzulegen. z.b. Page 2 währe 0b10011100 uff und das muss ich ja dann irgendwie aufteilen auf meine beiden Ports :( Gruß Dennis
also wenn du die "ersten" bits haben wills dann würd ich einfach mit einem UND verknüpfen. also wie z.B. hier im tutorial mit andi: http://www.mikrocontroller.net/tutorial/lcd.htm andi r16, 0b00001111 ;Nur die vier unteren (mit 1 markierten) ;Bits werden übernommen, alle anderen werden null das ergebnis kannst du dann auf PortC ausgeben. wenn du auf den ersten pins von PortD dann die "linken" 4 Bits ausgeben willst, dann einfach 4 mal nach rechts shiften
Hi, danke Dir für die schnelle Antwort, das Problem ist, das ich es leider nicht an den ersten Ports habe :( Hier Die Portauflistung ; PB0 = E ; PB1 = D/I ; PB2 = DB3 ; PB3 = DB2 ; PB4 = DB1 ; PB5 = DB0 ; ; PC0 = CS2 ; PC1 = CS1 ; PC2 = DB7 ; PC3 = DB6 ; PC4 = DB5 ; PC5 = DB4 bitte frag mich jetzt nicht warum so kompliziert :( aber theoretisch muss es doch trotzalledem gehen oder ?! Gruß Dennis
Hallo Dennis Dann mußt halt die unteren 4 Bits 2 Stellen nach links schieben und dann mit dem PORTB ODER verknüpfen. Für die oberen 4 Bits machst du dann erst eine UND Verknüpfung mit 1111 0000 und schiebst sie dann 2 stelle nach rechts und mit Portc ODER verknüpfen. Mal dir das mal auf einem Blatt Papier auf, da sieht man das gut. MFG Dieter
Uff... ODER ?! Ich habe mir gerade mal folgendes Ausgedacht, ********************************************************************* mov temp2, befehl andi befehl, 0b00001111 bst befehl, 3 bld temp1, 0 bst befehl, 2 bld temp1, 1 bst befehl, 0 bld temp1, 3 bst befehl, 1 bld temp1, 2 ********************************************************************* Denkweise so korrekt, oder liege ich da vollkommen falsch ?! Gruß Dennis P.S: Würde mich über eine kleine bestätigung freuen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.