www.mikrocontroller.net

Forum: Compiler & IDEs Pins lassen sich nicht einzeln steuern!!!????


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halli hallo an Alle...

hab da ein Problem bei mir festgestellt. Ich benutze PORTB bei mir als
Ausgang. Dabei entspricht PB0->CLK, PB2->/CLK, PB3->/WE, PB4->/CAS,
PB5->/RAS, PB6->/CS, PB7->CKE und PB1 ist nicht belegt.

So jetzt habe ich folgende Funktionen:

void CLK_send(int cycle)
{
  int i=0;

  for(i=0;i<cycle;i++)
    {
      PORTB(0x04 & 0x05);
                        PORTB(0x01 & 0x05);
                }
}
void SetCommandPins (uint8_t cmd)
{
  PORTB = (cmd & 0xf8);

}

So rufe ich nun zuerst CLK_send auf und danach SetCommandPins, werden
PB0->CLK und PB2->/CLK mit auf "NULL" gesetzt. Und umgekehrt das
gleiche, wenn ich erst SetCommandPins aufrufe und dann CLK_send, dann
werden meine Daten "NULL" gesetzt. Das will ich natürlich nicht. Gibt
es da einen Ausweg?
Dennnoch möchte ich aber das Daten bzw. der Takt ohne Zeitversatz
gesetzt werden....

Wie kann man das machen??? Habe auch nicht die Möglichkeit einen
anderen Port zu benutzten. Es muss mit einem funktionieren! Bitte helft
mir...!

Danke Thomas

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, einen (S)DRAM via Portpins ansteuern? ...

PORTB(0x04 & 0x05);

ist, zumindest mit der Standard-Definition von PORTB, sinnloser Code.
Was soll das bezwecken?

Ansonsten solltest Du Dir die Bitoperatoren von C nochmal ansehen.
Ist schon x-fach hier drüber diskutiert worden.  Nur kurz:

PORTB |= (1 << 4);

PORTB = (PORTB & ~0xf8) | (cmd & 0xf8);

usw. usf.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

danke für den tip...jetzt hauts hin...

Ciao Thomas

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.