Hallo,
AVRStudio v.4.14 Build 589 unter XP-SP2. Darunter geht PORTB auch wieder auf 0, wenn zum 2. Mail "timer==4" eintritt.Zitat:
Zitat von Ineedhelp
MfG
Fred
Druckbare Version
Hallo,
AVRStudio v.4.14 Build 589 unter XP-SP2. Darunter geht PORTB auch wieder auf 0, wenn zum 2. Mail "timer==4" eintritt.Zitat:
Zitat von Ineedhelp
MfG
Fred
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 ;-)
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
okay
du hast mich überzeugt
werde mal meine version updaten
dankeschön für deine hilfe
jetzt geht es bei mir auch
habe nicht mit breakpoints gearbeitet
sonder nur schrittweise
danke nochmal
wieder was gelernt
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