Forum: Mikrocontroller und Digitale Elektronik Problem Mega 8 Rs232


von Herrmann (Gast)


Lesenswert?

Hallo

Habe folgendes preoblem

Mega 8 sendet alle 5 sekunden per funk ein signal dieses leigt auch am 
tx port an.

Alles sowit so gut.

Ist mein Max 232 Modul gesteckt und mit dem PC Verbunden läuft die 
Hardware durch ohne Probleme Tage und Wochenlang.
Ist es Abgesteckt (max232 Modul) läuft die Hardware ca 20min und dann 
stürtz er ab und hängt im wald.

Kann man da was ändern????

Ist das Normal.

C Code

#define BAUD_RATE 4800
#define SYSCLK  16000000


// RS232 INIT
void init_rs232(void)
{

UCSRB= ((1<<RXCIE)|(1<<RXEN) | (1<<TXEN));
UBRRL=(SYSCLK / (BAUD_RATE * 16L) - 1);


  }


void send_UART(char *s)
{
 while (*s)
    {   /* so lange *s != '\0' also ungleich dem "String-Endezeichen" */
      loop_until_bit_is_set(UCSRA, UDRE);
 UDR=(*s);
        s++;
    }


im code

sage ich

sprintf(tx_buffer,"$Zeichenfolge %d %d %d",wert1,wert2,wert3);
send_UART(&tx_buffer[0]);

Danke schon mal

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das ist ja mal ein magerer Quellcode. Ich sehe hier keine Fehler, aber 
einen Haufen Problemquellen in dem nicht sichtbaren Quellcode.

von Falk B. (falk)


Lesenswert?

@ Herrmann (Gast)

>Ist mein Max 232 Modul gesteckt und mit dem PC Verbunden läuft die
>Hardware durch ohne Probleme Tage und Wochenlang.

Was für ein Modul? Wie sieht deine Platine aus?

>Kann man da was ändern????

Vielleicht.

>Ist das Normal.

Kaum.

>sprintf(tx_buffer,"$Zeichenfolge %d %d %d",wert1,wert2,wert3);
>send_UART(&tx_buffer[0]);

Ein

send_UART(tx_buffer);
 macht das Gleich und ist einfacher ;-)

Deine Codefragmente nützen wenig bis nichts. Du musst einen Schaltplan 
posten, bitte unter Beachtung der Bildformate.
Und vollständigen Quelltext als Anhang.

MFG
Falk

von Herrmann (Gast)


Lesenswert?

Also

ich habe auf der Hauptplatine eine Steckerleiste 1x4.

Pin 1=TXD
Pin 2=RXD
Pin 3=GND
Pin 4=+5V

im Normalbetrieb ist da nichts gesteckt also offene enden.

Dabei tritt das Problem auf.

Wenn ich den Pegelwandler mit den stiftleisten Verbinde

Schaltplan ist in den Tutorials zu finden.
Ohne das ein Computer an den Rs232 Ausgängen ist gehts ohne 
unterbrechung.
Sobald ich meinen Computer dazuschalte (Power on) habe ich das Problem 
auch.Und auch dann wenn ich ihn ausschalte (power off).Dann passiert das 
was nach ca 20min ohne Pegelwandler passiert.

Den Quellcode habe ich gekürtz das nur noch die Rs232 Init den send_UART 
und in der main while schleife ein waitms(2000) mit anschlißenden senden 
nur über die UART ohne Funk.

Das gleiche.

von Falk B. (falk)


Lesenswert?

@ Herrmann (Gast)

Netiquette!!!

Dein Deutsch ist furchteregend. Solche schwammig chaotischen Sätze kann 
ein Mensch verdauen.

>Schaltplan ist in den Tutorials zu finden.

Wo? Merke. DU willst eine Antwort, also solltest DU mal ein wenig 
Vorarbeit leisten und nicht einfach irgenwelchen Schrott hier vor die 
Füsse kippen.

>Ohne das ein Computer an den Rs232 Ausgängen ist gehts ohne
>unterbrechung.

>Sobald ich meinen Computer dazuschalte (Power on) habe ich das Problem
>auch.Und auch dann wenn ich ihn ausschalte (power off).Dann passiert das
>was nach ca 20min ohne Pegelwandler passiert.

Hast du im ersten Posting nicht genau das GEGENTEIL behauptet?

>Den Quellcode habe ich gekürtz das nur noch die Rs232 Init den send_UART
>und in der main while schleife ein waitms(2000) mit anschlißenden senden
>nur über die UART ohne Funk.

WO ist der?

MfG
Falk

von Herrmann (Gast)


Lesenswert?

So Problem gelößt

Ursache war Brown out detection.
Habe es auf enable gestellt und seitdem läuft er durch.

von Jupp (Gast)


Lesenswert?

>Dein Deutsch ist furchteregend. Solche schwammig chaotischen Sätze kann
>ein Mensch verdauen.

Wo ist dann das Problem?

von Herrmann (Gast)


Lesenswert?

Keine Ahnung ich habe nur diese Fuse umgestellt und seitdem läufts.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.