16Bitwort über ein PORTPIN ausgeben?

Gast #550060
Lesenswert?
• ▲
▼
Hallo Paul,

in einem Projekt hatten wir mal untiges Verfahren für den Master und die 
Debug-Ausgabe verwendet, alledrings haben wir nach einem Byte schon den 
Bus wieder mit Strom versorgt und der Master hat, wenn ein Slave senden 
sollte ein Start-Bit gesendet.

void outputSerial(UInt16 value)
{
  UInt8 bitPos;
  setPin(On); // Default Zustand
  for(bitPos=0; bitPos<16; bitPos++)
  {
     setPort(Off);
     sleep(a);
     if(value & 1 == 1)
     {
        setPort(On);
     }
     Sleep(b);
     setPort(On);
     sleep(c);


     value >> 1;
  }
}


Die Einsen und Nullen hatten wir in die Länge des Aus-Zustandes codiert, 
weil wir auf der anderen Seite anhand der Fallenden Flanke wissen 
wollten, dass ein neues Bit herein kommt. Dann haben wir geprüft ob es 
"lange" oder "kurz" aus war.

Während der Zeit C hatten die Slaves Zeit dieses Bit entsprechend zu 
verarbeiten und auf das nächste Bit zu warten. Wir haben auf der Slave 
Seite (etwa Faktor 10 langsamer als der Master, Assembler verwendet und 
die Sleeps durch einige handverlesene NOPs realisiert.

Wenn der Bus über einen Pullup auf "High" gezogen wird, können alle 
Teilnehmer des Busses senden und empfangen.

Wenn man dann noch dafür sorgt, dass der Master den Pullup in gewissen 
Fenstern überbrückt, können in dieser Zeit auch die Stützkondensatoren 
der Slaves geladen werden und die Slaves erhalten über diese Leitung 
auch ihren Strom.

Grüße,
  Thorsten

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.