mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART


Autor: Mathias K. (underworldgamer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich denn Simulator 4.12 von AVR Studio 4.12 verwenden bleibt der 
Simulator bei


--------------------
void uart_putc(unsigned char c)
{


      while (!(UCSRA & (1<<UDRE)))  //warten bis senden möglich ist
      {
      }
      UDR = c;

           //Ausgabe des Zeichens über UDR
}


hängen????
----------------

void uart_init()
{
    // UART Transmitter anschalten
    // Data mode 8N1, asynchron 4800 1MHZ

    UBRRH  = 0;                   // Highbyte ist 0
    UBRRL  = 207;                  // Lowbyte ist 12 ( dezimal )
    UCSRB  = (1 << TXEN)|( 1 << RXEN );        // UART TX RX einschalten
    UCSRC  =(1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);



}

void uart_putc(unsigned char c)
{


      while (!(UCSRA & (1<<UDRE)))  //warten bis senden möglich ist
      {
      }
      UDR = c;

           //Ausgabe des Zeichens über UDR
}

unsigned char uart_receiver(void)
{
  while (!(UCSRA & (1<<RXC)));   /* Wait for incomming data */
  return UDR;
}

void uart_puts (char *s)
{
  //schleife wird so lange ausgeführt bis kein Zeichen mehr kommt
    while (*s)
    {

        uart_putc(*s);
        s++;

    }
}


int main(void)
{

  DDRC = 0x00;

     uart_init();


for(;;)
{


   if(!(PINC & 0x01))
  {

    uart_putc(0x01);
  //while((PINC&0x01));
    }


  else if(!(PINC & 0x02))
  {
  //  time();
    uart_putc(0x02);

    //_delay_ms(100);
  //  while((PINC&0x02));
  }

  else if(!(PINC & 0x04))
  {
  //  time();
    uart_putc(0x04);

    //_delay_ms(100);
  //  while((PINC&0x02));
  }


   }


wo liegt der Fehler begraben???

Autor: Rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, offensichtlich ist die Bedungung nicht erfuellt. Am Besetn nimmst 
du einen freien Pin und clockst die verschiedenen Werte seriell raus. 
Dann dort mit dem Scope schauen was kommt.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dann dort mit dem Scope schauen was kommt.
Das geht im Simulator ziemlich schlecht...

@Mathias:
Welchen µC simulierst Du denn? Bei einigen AVRs gibts im Simulator 
bekannte Probleme beim Schreiben der Register UBRRH und UCSRC (z.B. beim 
ATMega16/32).

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.