Forum: Mikrocontroller und Digitale Elektronik avrasm übersetzen mach Pic asm oder C


von Martin M. (ats3788)


Lesenswert?

Beitrag "LCD (HD44780) Cursor Position wechseln"

*.MACRO locate ;(Zeile,Spalte)
*        push temp1
*        ldi temp1, 0b10000000|(((@0)-1)<<6)|((@1)-1)
*        rcall lcd_command
*        pop temp1
*.ENDMACRO

Hallo kann das jemand nach Pic ASM oder C
unschreiben, das wäre nett

von Peter II (Gast)


Lesenswert?

1
lcd_command( 0b10000000 | ((( Zeile )-1)<<6)|(( Spalte )-1);

von Martin M. (ats3788)


Lesenswert?

Wow Peter das ging ja schnell danke danke danke :)

Probiere ich nachher aus.

von Martin M. (ats3788)


Lesenswert?

Super klappt toll

#define cuc const unsigned char

void SetPositionText(cuc Zeile,cuc Spalte) {
    unsigned char PositionText = ( 0b10000000 | ((( Zeile )-1)<<6)|(( 
Spalte )-1));
        WriteCmdXLCD( PositionText );
}

Habe jetzt nur noch eine Frage zum 44780.

Wenn ich einen String setzte verschiebt sich der ganze
vorher geschriebene Inhalt, gibt es vielleicht einen Trick, Routine
wie man das verhindern kann

von spess53 (Gast)


Lesenswert?

Hi

>Wenn ich einen String setzte verschiebt sich der ganze
>vorher geschriebene Inhalt, gibt es vielleicht einen Trick, Routine
>wie man das verhindern kann

Das ist eine Frage der Initialisierung des Displays. Was hast du bei 
ENTRY-Mode eingestellt?

MfG Spess

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Peter II schrieb:
>
1
> lcd_command( 0b10000000 | ((( Zeile )-1)<<6)|(( Spalte )-1);
2
>

Oder so, möglicherweise leichter zu lesen:
1
lcd_command( 0b10000000 | (Zeile)-1<<6 | (Spalte)-1 );

von Martin M. (ats3788)


Lesenswert?

>Das ist eine Frage der Initialisierung des Displays. Was hast du bei
>ENTRY-Mode eingestellt?

#define CHR_ENTRY_MODE_7 0b00000111

http://www.geocities.com/dinceraydin/lcd/commands.htm
Da ist es toll erklärt

: Bearbeitet durch User
von Martin M. (ats3788)


Lesenswert?

#define CHR_ENTRY_MODE_6 0b00000110

ist hier der richtige

Eine frage habe ich noch
Ich bekomme es nicht hin das der Cursor aus geht
oder nicht mehr blinkt

*#define CURSOR_ON   0b00001111  /* Cursor on       */
*#define CURSOR_OFF  0b00001101  /* Cursor off      */
*#define BLINK_ON    0b00001111  /* Cursor Blink    */
*#define BLINK_OFF   0b00001110  /* Cursor No Blink */

mit

        WriteCmdXLCD(BLINK_OFF);
        WriteCmdXLCD(CURSOR_OFF);

abgeschickt

: Bearbeitet durch User
von Martin M. (ats3788)


Lesenswert?

Ich sehe was ich falsch gemacht habe. Man muss
die Flags und oder verknüpfen

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
Noch kein Account? Hier anmelden.