- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 36

Thema: STK500, Atmega16, UART, AVR Studio4

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

    Powerstation Test
    #include <avr/io.h>

    #ifndef F_CPU
    #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000"
    #define F_CPU 4000000 // Systemtakt in Hz - Definition als unsigned long beachten
    #endif

    #define BAUD 9600L // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden!

    // 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-1000) // Fehler in Promille

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

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

    UBRRH = UBRR_VAL >> 8;
    UBRRL = UBRR_VAL & 0xFF;
    while( 1 ) {
    while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
    {
    }

    UDR = 'm';
    }
    }


    also die genannten Einstellungen hab ich gemacht...und er sendet immernoch so ein zeugs da ...was anderes kann es nicht sein !?

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    Und jetzt gibt er mir bei den Fuses ne Fehlermeldung raus:


    A problem occured when executing the command. SPIEN hat ein rotes Fragezeichen!? Kann also nicht mehr Programme aufspielen !? Was is denn da los ?

  3. #23
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Dann bringst du keinen Takt auf XTAL1
    SPIEN kann ich gar nicht abschalten.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #24
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Mit 3<<UCSZ0 hast du 2 Stopbit
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #25
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    #define UBRR_VAL (((F_CPU)/(BAUD*16))-1) // clever runden
    UDR = 'A';
    _delay_ms(5);
    Das habe ich geändert und hinzugefügt, bei mir läuft es.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    Dieses Problem hab ich mittlerweile behoben...aber er gibt mir immernoch falsche Buchstaben aus!? Weiss so langsam nicht mehr weiter...also programmierbar ist er wieder

    MFG

  7. #27
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Am Anfang des Programms gehört noch #include <util/delay.h>
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    mhhh wuerde es dir was ausmachen deinen Quellcode hier reinzustellen? Irgendwie läuft grad nix mehr so richtig bei mir

    Vielen Dank fuer deine Muehe!!!

  9. #29
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Code:
    #include <avr/io.h>
    #include <util/delay.h>
    
    #ifndef F_CPU
    #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000"
    #define F_CPU 3686400 // Systemtakt in Hz - Definition als unsigned long beachten
    #endif
    
    #define BAUD 9600UL // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden!
    
    // Berechnungen
    #define UBRR_VAL (((F_CPU)/(BAUD*16))-1) // clever runden
    #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate
    #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) // Fehler in Promille
    
    //#if ((BAUD_ERROR>10) || (BAUD_ERROR<=10))
    //#error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch!
    //#endif
    
    int main(void)
    {
    UCSRB |= (1<<TXEN); // UART TX einschalten
    UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); // Asynchron 8N1
    UBRRH = UBRR_VAL >> 8;
    UBRRL = UBRR_VAL & 0xFF; 
    while( 1 ) {
    while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
    {
    }
    
    UDR = 'A';
    _delay_ms(5);
    }
    }
    Das läuft bei mir einwandfrei.
    Ich verwende normalerweise die uart-Lib von Fleury, da braucht man sich um nichts kümmern.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #30
    Benutzer Stammmitglied
    Registriert seit
    20.03.2010
    Beiträge
    50
    Hey,
    vielen Dank fuer deinen Code...werd ihn am Montag direkt ausprobieren !!!
    wünsch dir ein schönes Wochenende!

    MFG

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress