- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Prüfungstress, Usart geht nicht

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Anzeige

    Powerstation Test
    Da findet der Linker die rs232.c nicht. Ich kenne WINAVR nicht, aber wahrscheinlich hast du ein makefile. Darin musst du die rs232.c eintragen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Hast du überhaupt schon mal deine Hardware, also Pegelwandler, Kabel, Schnittstelle am PC, überprüft? Da kann nämlich auch noch was schieflaufen, denn dein Code läuft bei mir ja. Gerade weil du schreibst, du hättest das Kabel selbstgebaut.
    Also:
    -> AVR aus dem Sockel entfernen
    -> Im Sockel mit einem Draht RXD auf TXD brücken
    -> Am PC ein Terminalprogramm aufmachen, ein paar Zeichen senden. Sie müssen genauso wieder reinkommen, und wenn du die Brücke aus dem Sockel entfernst, darf nichts mehr kommen.
    Bitte Ergebnis posten!

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2009
    Beiträge
    11
    Oh Freunde. ich habe ein 'a' oder g oder was ich will.

    @ uwegw:
    Wie du in meinem ersten Beitrag lesen kannst habe ich dies schon ausprobiert.
    "ERFOLGREICH"

    Habe mir gerade nen anderes STK200 ausm Schrank genommen und ausprobiert.

    Man sollte es nicht glauben aber es geht.
    KP was an dem anders ist, denn auch nach intensiver Prüfung und Diskussion mit meinem Ausbilder finde ich keine Unterschiede.

    Auf jeden Fall Danke ich euch sehr für die große Hilfe,

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2009
    Beiträge
    11
    Hey ich bin's schon wieder.

    könnte mir einer von euch erklären wie ich genau die "uart_getchar()" Funktion nutzen kann.

    mein gehacktes siet so aus

    int main(void)

    /* RS232 einschalten ... */
    setup_uart();

    /* Willkommensnachricht senden ... */
    uart_putline("\x1b[1H");
    uart_putstring("\r");
    uart_putchar('E');

    while (1)
    {
    c = uart_getchar();
    uart_putstring("\n\n\r drueck g");
    if(c=='g'){
    uart_putstring("\n\n\rhallo");}
    else
    uart_putstring("\n\n\rtschuess");
    {
    return 0;
    }}}

    Entprellen oder so muss ich hier ja woll nicht, oder??????
    hab es schon mit Zeitschleifen versucht um das ich halt mehr zeit habe für die eingabe, wars anscheinend auch nicht.

    THX SebZilla

  5. #15
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Bekommst du überhaupt ein Zeichen?
    Dein Kompiler wirft keinen Fehler oder Warnung aus?
    c ist nicht deklariert.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2009
    Beiträge
    11
    Ja leider kann ich das hier zu hause kein ozi.

    Mein compiler sagt alles i.O.!

    Ah, "c" ist als unsigned char definiert.

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Wozu brauchst du immer noch nen Oszi?

    uart_getchar() liefert aber keinen unsigned char, sondern einen int!!! Das hat folgenden Grund: so kann signalisiert werden, dass kein neues Zeichen empfangen wurde. Dann ist der Rückgabewert nämlich -1. Wenn man nun also auf ein Zeichen wartet, macht man folgendes: in einer Schleife ruft man immer wieder uart_getchar() auf, solange bis keine -1 mehr zurückkommt. Dann steht im gelesenen int das Zeichen, und man kann es in nen char casten und weiterverarbeiten.
    Code:
    int c;
    
    while (1)
    {
    uart_putstring("\n\n\r drueck g");
    do{
    	c = uart_getchar();
    } while (c==-1);
    
    if((char)c=='g'){
    uart_putstring("\n\n\rhallo");}
    else
    uart_putstring("\n\n\rtschuess");
    }

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2009
    Beiträge
    11
    THx @uwegw

    Werde das morgen aufer arbeit mal weiter verfolgen:

    Habe inzwichen auch eine Eingabe hinbekommen, aber brauche das schon als char damit ich es mit den anderen vergleichen kann.

    Wünsche noch einen schönen Abend.

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Zitat Zitat von SebZilla
    Habe inzwichen auch eine Eingabe hinbekommen, aber brauche das schon als char damit ich es mit den anderen vergleichen kann.
    int tmp;
    char c;

    do{
    tmp = uart_getchar();
    } while (tmp==-1);
    c=(char)tmp

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2009
    Beiträge
    11
    Ist es eigentlich möglich mit einer der "uart funktionen" die ich verwende, direkt einer Variable auszugeben????

    Momentant gebe ich die Zeit die eingelesen wird
    über einer switch Anweisung aus

    Beispiel:
    iMin_einer = (hilf_1 + hilf_2 + hilf_4 + hilf_;
    switch("%c", iMin_einer)
    {
    case 0x00:
    uart_putstring("0");
    break;
    case 0x01:
    uart_putstring("1");
    break;
    case 0x02:
    uart_putstring("2");
    break;
    case 0x03:
    uart_putstring("3");
    break;
    case 0x04:
    uart_putstring("4");
    break;
    case 0x05:
    uart_putstring("5");
    break;
    case 0x06:
    uart_putstring("6");
    break;
    case 0x07:
    uart_putstring("7");
    break;
    case 0x08:
    uart_putstring("8");
    break;
    case 0x09:
    uart_putstring("9");
    break;
    default:
    uart_putstring("default");
    break;
    }
    funktionieren tut es ja aber besonder elegant ist das ja nicht.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen