-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: STK500, Atmega16, UART, AVR Studio4

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50

    STK500, Atmega16, UART, AVR Studio4

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo allerseits,


    ich versuche verzweifelt eine Verbindung von meinem Board zu meinem PC herzustellen. Hab in dem Datenblatt vom stk500 gesehen, dass PD0 &1 mit RXD und TXD ueber ein Kabel verbunden werden. Hab ich auch gemacht. Hab dann aus den Tutorials Die Texte rauskopiert und ein Programm auf mein Board geladen.
    Und wo wird jetzt die Variable X angezeigt ? Benötige ich da noch software ?

    Hier mein Programm:

    #include <avr/io.h>
    #include <inttypes.h>


    #ifndef F_CPU
    #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000"
    #define F_CPU 4000000UL // Systemtakt in Hz - Definition als unsigned long beachten
    // Ohne ergeben sich unten Fehler in der Berechnung
    #endif

    #define BAUD 9600UL // Baudrate

    // Berechnungen
    #define UBRR_VAL ((F_CPU+BAUD*/(BAUD*16)-1) // clever runden
    #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate
    #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.

    #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
    #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch!
    #endif


    /* UART-Init Bsp. ATmega16 */

    void uart_init(void)
    {
    UCSRB |= (1<<TXEN); // UART TX einschalten
    UCSRC |= (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); // Asynchron 8N1

    UBRRH = UBRR_VAL >> 8;
    UBRRL = UBRR_VAL & 0xFF;
    }

    int main(void) {

    uart_init();

    while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
    {
    }

    UDR = 'x'; /* schreibt das Zeichen x auf die Schnittstelle */
    }


    Vielen Dank und viele Gruesse,

    Jimmy

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    Der Smiley ist natuerlich 8 )

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Am PC brauchst du noch ein Terminalprogramm, im Windows Hyperterminal.
    Dort auch 9800 8n1 einstellen, kein Hardwarefluss.
    Es könnte dann noch RX und TX verdreht sein.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    Hab das Programm HTerm installiert und jetzt ? Stimmt obiges Programm zum Ausgeben von X? Und wo soll X dann angezeigt werden !? Muss ich mit PORTD nicht noch irgendwas zuweisen ?hab ja da nur die Verbingung zu RDX und TDX

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Wenn du im Hterm die nötigen Einstellungen gemacht hast, solltest du schon was sehen.
    PortD musst du nichts zuweisen.
    Du kannst aber probieren ob in der Leitung alles richtig ist.
    Wenn du den Stecker der auf PortD geht abziehst und eine Brücke hinein steckst, dann solltest du eine Eingabe am HTerm als Echo zurückbekommen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    mhhh also jetzt kommt was an lauter rechtecke und den wert 255...ich nehm an wegen der while schleife...aber wie krieg ich da ein x hin

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    also was da komisch ist, wenn ich in Hterm die Baudrate veränder, wird mir immer ein anderes Zeichen gesendet !? Woran liegt das und wie sende ich dann genau und immer mein x?

    Viele Gruesse und vielen Dank,

    Jimmy

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Wenn du mit dem internen Oszillator arbeitest kann es sein das dessen Frequenz nicht genau genug ist. Dann musst du einen Quarz nehmen.
    Im HTerm musst du 9800 8n1 einstellen, kein Hardwarefluss oder Handshake.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    also bei HTErm hab ich die Einstellungen so vorgenommen und da wird mir kein x angezeigt. Wenn ich die Baudrate auf 38400 erhöhe werden plötzlich x angezeigt !? Woran liegt denn das ?

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Das ist schwierig festzustellen. Probier mal ein Wort auszugeben.
    Möglich wäre das dein Takt nicht stimmt und du tatsächlich vier mal so schnell bist.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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