- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 11 bis 20 von 25

Thema: Einstieg in C (WinAVR)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hi,

    nach einiger Zeit bin ich nun (mal wieder) am experimentieren mit dem Atmel-Studio (6).
    Ich wollte wieder mit der USART anfangen, nachdems damals ja nicht geklappt hatte... Also hab ich ein Programm geschrieben, welches "Hallo Welt" jede 1s ausgeben soll. Doch leider passiert wieder mal nichts. Ich weiß nicht wo der Fehler ist, aber es scheint, als würde der AVR (ATXMega32A4) überhaupt nichts machen, es kommt nichtmal Müll im Terminal an. Ansich muss aber alles funzen, den wenn ich das gleiche Prog mit Bascom schreibe, kommt immer was im Terminal an...
    Code:
    #define F_CPU 32000000L
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    #include <string.h>
    
    
    int main(void)
    {
        
        Clock_init();
        uart_init(&USARTC1);
        
        while(1)
        {
            Send_UART("Hallo Welt" , &USARTC1);
            for(int i=1000;i>=1;i--)
            {
                _delay_ms(1);
            }    
        }
        
    }
    
    void Clock_init(void)
    {
        OSC.CTRL |= OSC_RC32MEN_bm;
        while(!(OSC.STATUS & OSC_RC32MRDY_bm));
        CCP = CCP_IOREG_gc;
        CLK.CTRL = CLK_SCLKSEL_RC32M_gc;
    }
    
    void uart_init(USART_t *usart)
    {
          usart->BAUDCTRLB = 0;                                                                                            
          usart->BAUDCTRLA = 0x11;                                                                                            
          usart->CTRLB = USART_TXEN_bm | USART_RXEN_bm;                                                                
          usart->CTRLC = 0x03;                                                                                                
          usart->CTRLA = 0;
    }
    
    void Send_UART(char data[], USART_t *usart)
    {
        char Counter = 0x00;
        char lenght = 0x00;
    
        lenght = strlen(data);
    
        while(Counter < lenght)
        {
            while (!(usart->STATUS & USART_DREIF_bm));
            usart->DATA = data[Counter];
            Counter++;
        }
    
        Counter = 0x00;
        while (!( usart->STATUS & USART_DREIF_bm));
        usart->DATA = 0x0A;
        while (!( usart->STATUS & USART_DREIF_bm));
        usart->DATA = 0x0D;
    }
    Ich drücke auf "Build GccApplication3" (so heißt das Prog) und anschließend auf "Device Programming". Dann auf "Apply", dann auf Memories und wähle die .hex Datei aus. Dann drücke ich noch auf Program. Ich hoffe der Ablauf ist richtig?!

    Gruß
    Chris

    EDIT:
    Hab den Fehler selbst gefunden, hatte vergessen den TX-Pin auf Ausgang zu stellen. Da ist wohl Bascom Schuld, der macht das automatisch..
    Geändert von Che Guevara (27.08.2013 um 11:58 Uhr)

Ähnliche Themen

  1. Fehlermeldung WinAVR
    Von hvltt15 im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 10.04.2008, 20:31
  2. MFile [WinAVR]
    Von siroks im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 17.01.2008, 21:22
  3. WinAVR
    Von Chattychan im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 12.09.2006, 13:41
  4. WinAvr
    Von LC-HC im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 30.08.2005, 14:10
  5. WinAVR Tutorial
    Von Kjion im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 12.08.2004, 10:36

Berechtigungen

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

LiFePO4 Speicher Test