- Akku Tests und Balkonkraftwerk Speicher         
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

    LiFePo4 Akku selber bauen - Video
    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
  •  

Labornetzteil AliExpress