Forum: Mikrocontroller und Digitale Elektronik 3 Zeilen Code und ein AT91 der mich ärgert!


von Andreas (Gast)


Lesenswert?

Hallo,

also ich bastel gerade an dem parralellPort für ein gLCD und verzweifel 
so langsam!

Die Datenports für das Display sind folgendermaßen aufgeteilt:

#define LCD_D0     (1<<23)          // P23
#define LCD_D1     (1<<25)          // P25
#define LCD_D2     (1<<26)          // P26
#define LCD_D3     (1<<27)          // P27
#define LCD_D4     (1<<28)          // P28
#define LCD_D5     (1<<29)          // P29
#define LCD_D6     (1<<30)          // P30
#define LCD_D7     (1<<31)          // P31

der Sprung von 23 und 24 ist leider nicht vermeidbar, dank hier an das 
OLIMEX Board!

Nun möchte ich  den Wert 0x3F an das Display schicken (Display löschen), 
hierzu 3 Zeilen Code:

    value1 = 1048576000; // entspricht 0x3F
    value1 = 0x3F000000;  // entsricht 1048576000;
    pPIO->PIO_SODR = value1;


sobald ich die zweite Zeile als Kommentar setzt klappt es.....das ist 
aber nciht gerade die feine Art.
Wenn die zweite Zeile aktiv ist zeigt mir das Oszi nada an, also nichts. 
Alle Ausgänge sind low!

Hat jemand eine Idee?

Gruß

Andreas

von Willi W. (williwacker)


Lesenswert?

ohne zu wissen welchen Compiler Du einsetzt:

versuch mal 0x3F00000L (man beachte das ELL) oder einen cast nach (long)

von Rooney B. (rooney)


Lesenswert?

0x3F000000 ist nicht gleich 1048576000!!!
0x3F000000 ist 1056964608!!!

von winne (Gast)


Lesenswert?

und

value1 = 1048576000; //entspricht 3E800000

so kann man sich auch nen nen hund einbauen und nen wolf suchen

;-))))

von Rooney B. (rooney)


Lesenswert?

ja, wenn man dann auf der falschen Leitung misst schon

von winne (Gast)


Lesenswert?

ich fürchte du hast den oben von dir selbst erwähnten  bitsprung D0--D1 
missachtet.

von winne (Gast)


Lesenswert?

konkret must du imm falle des gesetzten bits 0  dieses und nur dieses 
einmal nach rechts schieben dann bekommst du das gewünschte ergebnis

munter bleiben

von Andreas (Gast)


Lesenswert?

Danke, danke!!!!

jetzt gilt es das Ganze noch für einen Wert x so verändern das das auch 
immer klappt!

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.