📄 main.c
字号:
#include <avr/io.h>
#include <avr/delay.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define M2 PD6 //M1、M2: 00 表示步进电机工作在整步方式, 10 为半步方式,
#define M1 PD5 // 01 为1/ 4 细分方式, 11 为1/ 8 细分方式;
#define CK1 PD4
#define CW_CWW PD3
#define ENABLE_L PD2
void usart_putchar(uchar data)
{
if(data=='\n')
{
usart_putchar('\r');
}
while(!(UCSRA & (1<<UDRE)));
UDR=data;
}
uchar usart_getchar(void)
{
while(!(UCSRA & (1<<RXC)));
return UDR;
}
int main(void)
{
uchar m;
uint n;
DDRD = 0x7c;
PORTD |= ( 1<<ENABLE_L );
PORTD &= ~( 1<<M2);
PORTD |= ( 1<<M1 );
PORTD |= ( 1<<CW_CWW );
UCSRB=_BV(RXEN)|_BV(TXEN);/*(1<<RXCIE)|(1<<TXCIE)|*/
UBRRL=51; //9600 baud 8MHz:51 6MHz:38 4MHz:25
while(1)
{
m = usart_getchar();
if( m == 'k' )
{
PORTD &= ~( 1<<ENABLE_L );
for(n=0;n<200;n++)
{
PORTD |= (1<<CK1);
_delay_loop_2(1500);
PORTD &= ~(1<<CK1);
_delay_loop_2(1500);
}
PORTD |= ( 1<<ENABLE_L );
m=0;
usart_putchar('o');
usart_putchar('k');
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -