www.mikrocontroller.net

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


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Willi Wacker (williwacker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ohne zu wissen welchen Compiler Du einsetzt:

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

Autor: Rooney Bob (rooney)
Datum:

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

Autor: winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und

value1 = 1048576000; //entspricht 3E800000

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

;-))))

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, wenn man dann auf der falschen Leitung misst schon

Autor: winne (Gast)
Datum:

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

Autor: winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, danke!!!!

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.