www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tyni13 und seriell


Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Techniker,

möchte mit Tiny13 ein paar Bytes übertragen.
Es soll der interne RC  bei 4.8 Mhz verwendet werden.
Frage: wo ist die Gefahr von "Zeitproblemen" größer?
1200  oder 9600 Baud

Gruss Kurt

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist kein Unterschied, beides ist gleich schlecht.


Peter

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK Peter,

gleich schlecht ist gut.
Hab halt den Umstand mit den wenigen Pins.

Soll auch nur solange herhalten bis die Rutinen(n)
für Bi-phase laufen.

Gruss Kurt

Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
//*******************Softuart Byte senden***//lowest Bit zuerst
****Baud 9800  **************BTime = 250 bei 4.8 Mhz
void Wr_Char (char Data)
{
  char loop;

   TX = 0;    //Startbit
   delay_us (BTime);    //Baud 9800

  for (loop = 0; loop < 8; loop ++)                  // char Variable
Bitweise ausgeben
                  {
                   if  ( (Data  &  (1<< loop))   >=  1 )    TX = 1;
else TX = 0;
                  delay_us (BTime);
                  }
    TX = 0;    //Stoptbit
    delay_us (BTime);    //Baud 9800
    TX = 1;            //Ende Stopbit
}
//*********************Softuart*Pin seriell einlesen LSB
zuerst***getestet*******************
char In_Char (void)
  {
       char loop,Help,data;

       while (RX == 1) {};             //warten auf Signal

        delay_us ( BTime + (BTime / 2) );  //Startbit abwarten,in der
Mitte des Datenbit lesen

        for (loop = 8 , Help = 0 ; loop  >   0;  loop -- )  //Bit
seriell einlesen    Ergebnis in test binär     getestet
 //highest Bit zuerst
            {
                  if ( RX == 1)    data  |=  (1 <<  Help);
                    Help++;
                    delay_us (BTime);
                    }
         return data;
         }
//****************************Text aus Flashtabelle
ausgeben*****************************************
void Text_Uart(char flash *Table)
  {
         char Loop,Dat;
  while (1)
    {
          Dat = *Table++;            //char aus Tabelle holen
          if (Dat == 0) break;
          Wr_Char(Dat) ;
          delay_ms(1);      //Zeichenverarbeitung abwarten
          }
         }
//********************************************************************** 
***************************

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hübsch - aber schlecht. Wie willst du empfangen, wenn du sendest oder
irgendwas anderes tust? In ganz begrenztem Umfang ist das einsetzbar,
normalerweise aber nicht. Geht eigentlich nur sinnvoll mit externem
Interrupt (der das STartbit erkennt) und Timerinterrupt für die
Bitabtastung.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja zum Debuggen ist es natürlich ausreichend.

Ich hab mir bei meinen ATMega8 erstmal eine Pin-Toggle Routine
reingebrannt und dann mit dem Frequenzmesser (Digitaloszi) die genaue
Frequenz ausgeben lassen. Die AVRs habe ich dann durchnumeriert, damit
keine Verwechslungen auftreten.


Peter

Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"hübsch - aber schlecht. " -  schnell geschrieben - Hirn kam zu spät.

Machs besser. Im Datenblatt vom Tiny13 wirst du herauslesen, dass
er nur 1 KByte Flash hat. Also zeig mir mal , was du alles für
Mega-Komplex-Routinen hineinbringst ;-). Freu mich schon.


SG Josef

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Josef,

daraus sehe ich (kann nicht "C") dass einzelne Bytes
mit Start- und Stopbit erzeugt, und ausgegeben bzw. eingelesen
werden.
Habe wegen der Ser-Ausgabe BASCOM verwendet, allerdings ist der
Speicher mit der kleinen Anwendung auch schon ganz voll.
So ähnlich, jedoch für Bi-phase und in Assembler stelle ich mir die
Übertragung der Bytes vor.
Dabei ist der Zeitfaktor nicht so kritisch und ich kann dann beruhigt
den RC-Osz verwenden.


Gruss Kurt

Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lieber Kurt !

Was willst du mir sagen ?


SG Josef

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Josef,

der erste Teil war eine Antwort auf deinen Artikel den Du mir so
schnell bereitgestellt hast (Danke).
Er sollte warsch. auch meine Verlegenheit zeigen (wegen C).

Im zweiten Teil hab ich meine Gedanken "kreisen" lassen und hoffe auf
eine pos. Bestätigung ob ich richtig liege.


Gruss Kurt

Autor: josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist "Bi - phase" ?


Josef

Autor: Kurt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so ein neuer Tag, ein neues "Leben",

hallo Josef, Bi-phase (versuch es mit meinen Worten zu sagen)
ist eine Übertragungsart wo
a' der Gleichspannungsanteil im Mittel gleich ist (notwendig bei
   Leitungen [speziell Funk] wo keine Null Herz übertragen werden
   können.

b' der Takt eindeutig ohne grossen Aufwand wiedergewonnen werden kann

C' wegen der Taktrückgewinnung auch zeitliche Schwankungen nicht so
   sehr stöhren.

d' direkt von einem uC erzeugt und auch ausgewertet werden kann (SW)

usw.

es gibt natürlich auch Nachteile.

z.B. ist die Kanalnutzung nicht so "mächtig" da eigentlich jedes Bit
doppelt übertragen wird.

Gruss Kurt

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.