Gast
#90100
hallo,
habe ein Prog-geschrieben, welches ein Schrittmotor steuern
soll(Geschwindigkeit)
bei Programmstart, dreht sich der Schrittmotor mit einer bestimmten
Geschwindigkeit.
Wenn ich dem Avr nun per Uart die neue Geschwindigkeit mitteilen
möchte, stoppt der motor!!!!
und der Timer auch.
hier mein Code:
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/sfr_defs.h>
#include <avr/interrupt.h>
#define true 1
unsigned char tick=0;
unsigned char counter=0;
unsigned char temp;
unsigned char geschwindigkeit=10;
INTERRUPT (SIG_OVERFLOW0)
{
if (tick==geschwindigkeit)
{
switch(counter)
{
case 0:
tick=0;
PORTB=0x00;
counter++;
break;
case 1:
tick=0;
PORTB=0x01;
counter++;
break;
case 2:
tick=0;
PORTB=0x03;
counter++;
break;
case 3:
tick=0;
PORTB=0x02;
counter=0;
break;
}
}
tick++;
}
INTERRUPT (SIG_UART_RECV)
{
temp=UDR;
geschwindigkeit=temp;
tick=0;
}
/************************************************/
void uartreceive_ini (void)
{
UBRR=25;
sbi(UCSRB,RXEN);
sbi(UCSRB,RXCIE);
}
/************************************************/
int main (void)
{
uartreceive_ini();
TCCR0=0x02;
TCNT0=0x00;
TIMSK=0x02;
DDRB=0xFF;
PORTB=0x00;
sei();
while(1)
{
}
return 0;
}
gruß
Peter Bauer