Witam, stworzyłem taki program do sterowania silnika krokowego:
Jak pewnie wiadomo jestem początkujący nie wiem czy dobrze napisałem ten program, niestety nie mam teraz dostępu do ATmegi8 więc nie sprawdzę tego na żywo. Z góry dziękuję za odpowiedzi, pozdrawiam, Polprzewodnikowy.
//Sterowanie silnikiem krokowym
//Ver 1.0 beta
//Tranzystory na wyjściu PORTD
#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
// PD.1 - PD.4 jako wyjścia
DDRD = 0x0f;
//PORTC jako wejścia
DDRC = 0x00;
//Przycisk do 1 i 2 pinu PORTC
PORTC = 0x03;
while(1)
{
if(!(PINC & 0x01))
{
PORTD = 0x08; //Włącz PD.4
_delay_ms(10); //Opóźnienie
PORTD = 0x04; //Włącz PD.3
_delay_ms(10); //Opóźnienie
PORTD = 0x02; //itd...
_delay_ms(10);
PORTD = 0x01;
_delay_ms(10);
}
if(!(PINC & 0x02))
{
PORTD = 0x01;
_delay_ms(10);
PORTD = 0x02;
_delay_ms(10);
PORTD = 0x04;
_delay_ms(10);
PORTD = 0x08;
_delay_ms(10);
}
}
}
Jak pewnie wiadomo jestem początkujący nie wiem czy dobrze napisałem ten program, niestety nie mam teraz dostępu do ATmegi8 więc nie sprawdzę tego na żywo. Z góry dziękuję za odpowiedzi, pozdrawiam, Polprzewodnikowy.