- LiFePO4 Speicher Test         
Seite 11 von 15 ErsteErste ... 910111213 ... LetzteLetzte
Ergebnis 101 bis 110 von 150

Thema: Timer0 Overflow Interrupt löst nicht aus (ATmega16)

  1. #101
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    Praxistest und DIY Projekte
    So gesehen hast du recht.
    Ich kann aber eigentlich keinen Fehler sehen.
    Sei () hast du ja drinnen ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #102
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Code:
    __task void main()
    {
      init_hw_uart(); // 19200 @3.686 MHz
    
      __enable_interrupt();
    
      while(1);
    }
    
    
    void init_hw_uart()
    {
    // Set Baudrate
    UBRRH = 0x00;
    UBRRL = 0x0B;
    // Enable receiver and transmitter
    UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
    // Set frame format: 8data bit , 1 Stop Bit
    UCSRC |= (1<<UCSZ1)|(1<<UCSZ0);
    }
    
    
    void transmit_byte(unsigned char data)
    {
    // Put data into buffer, sends the data
    UDR = data;
    }
    
    #pragma vector=USART_RXC_vect
    __interrupt void UART_RX_interrupt(void)
    {
      DDRB |= (1<<PB0); // Status LED initialization
      PORTB ^= (1<<PORTB0);		// toggle status LED
    
      unsigned char data;
    
      data = UDR; //receive data
    
      transmit_byte(data); // echo data
    }
    siehst du da irgndwo einen Fehler ?

  3. #103
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #104
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Geht jetzt....

    ok dann ma sw-uart mit reinbasteln

  5. #105
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Sollt eigentlich funzen (HW UART geht noch *gg*). Stell den Code schon ma online..

    Muss nur noch die zusätzlichen Leitungen verbinden.
    Der RxCounter-Stand vom Software UART wird wieder mit send_one_byte() ans Terminal geschickt.
    So wars auch gedacht ?!
    Angehängte Dateien Angehängte Dateien

  6. #106
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Schau ich mir gleich an.
    Wir können für diesen Versuch auch mit der HW-Uart senden, es ist im Grunde egal.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #107
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wenn das Echo mal prinzipiell getestet ist und funzt,
    hw_transmit_byte(data); // echo data

    reicht aber dann
    hw_transmit_byte(bRxCount + 0x30); // return actual rxcounter

    bin ich neugierig
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #108
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    HW-UART funzt, aber anscheinend wird nie RX_M_DATA gesetzt (siehe while-Schleife)
    Denn im Terminal zeigts kein Counterstand an...

    Habs jetzt so:
    Angehängte Dateien Angehängte Dateien

  9. #109
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Mal schauen, ob INT0 überhaupt anspringt.

    In der Hw Receive-ISR den Flag RX_M_RECEIVE prüfen
    Isser gesetzt, ist INT0 offenbar angesprungen
    wenn nicht, müssen wir klären, warum das so ist.
    ( mach einfach statt "send-one-byte( '0') oder ('1') )



    Ist der Flag da, aber rxCount bleibt null, kommt die Timer-ISR nicht dran
    (irgendein enable fehlt ?)

    Schaust du mal ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #110
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Sag ma sperren sich die Interrupts nicht gegenseitig ??
    Meine damit INT0 und den USART_RXC...

    Hab Status LED in INT0 und des springt net an...
    Außerdem is ja INT0 PD2 und RXD ist PD0

Seite 11 von 15 ErsteErste ... 910111213 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen