- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Timer hängt sich auf?

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    Zitat Zitat von Ineedhelp
    welche simulationssoftware verwendest du?
    AVRStudio v.4.14 Build 589 unter XP-SP2. Darunter geht PORTB auch wieder auf 0, wenn zum 2. Mail "timer==4" eintritt.

    MfG

    Fred
    Only entropy comes easy. - Anton Checkhov

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    14.03.2008
    Ort
    Oldenburg
    Beiträge
    84
    okay, benutze die 4.13

    irgendwas stimmt aber nciht
    ich habe den code mal abgeändert
    es kommt nie vor, dass status = 1 wird, weil sich bei meiner simulation beim port D nichts tut

    Code:
    #define F_CPU 4096000
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <inttypes.h>
    #include <stdint.h>
    
    volatile int16_t timer=0;
    volatile int8_t status=0;
    
    
    void initTimer(void)
    {
    	TCCR0B |= (1<<CS00)|(1<<CS02);
    	TCNT0 = 1;  
    	TIMSK |= (1<<TOIE0);
    }
    
    void initInterrupts(void)
    {
    	sei();
    }
    
    ISR(TIMER0_OVF_vect)
    {
        timer=timer+1;
    
    }
    
    int main (void) 
    {
       initTimer();
       initInterrupts();
       DDRB = 0xff;
    
       while(1) 
       {                
    	if(timer>=4)
    	{
    		timer=0;
    		if(status==0)
    		{
    		PORTB = 0xff;
    		status=1;
    		}
    		if(status==1)
    		{
    		PORTB = 0x00;
    		DDRD = 0xff;
    		PORTD = 0xff;
    		status=0;
    		}
    	}
       }                       
       return 0;
    }

    danke für deine hilfe
    ich weiß, es nervt ein bisschen

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hallo,

    bei Deiner Vorversion wird "status==1", wie in den folgenden Bildern zu sehen ist. Deiner neueste Version läuft bei mir auch; status wird 1 und PORTD=0xff.

    Gruß

    Fred
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken timer_3.png   timer_0.png  
    Only entropy comes easy. - Anton Checkhov

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    14.03.2008
    Ort
    Oldenburg
    Beiträge
    84
    okay
    du hast mich überzeugt
    werde mal meine version updaten

    dankeschön für deine hilfe

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    14.03.2008
    Ort
    Oldenburg
    Beiträge
    84
    jetzt geht es bei mir auch
    habe nicht mit breakpoints gearbeitet
    sonder nur schrittweise

    danke nochmal
    wieder was gelernt

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Schön, dass es jetzt klappt! Wollte gerade schreiben, dass das Problem sicher nicht beim AVRStudio v.3.13 liegt, sondern eine andere Ursache haben muss. Ohne Breakpoints kannst Du im Einzelschrittmodus oft nur im Assembler-Listing (View|Disassembler) verfolgen, was gerade passiert.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test