📄 main.c
字号:
#include "Board.h"
#include "define.h"
int main( void )
{
int i;
system_init();
for(;;){
/* if((count_timer1_interrupt%400==0)&&(output_pulse1==1)){
temp_send_data[0] = (unsigned char)0x01;
temp_send_data[1] = (unsigned char)GET_INTERNUMBER;
temp_send_data[2] = (unsigned char)((count_timer1_interrupt)>>24);
temp_send_data[3] = (unsigned char)((count_timer1_interrupt)>>16);
temp_send_data[4] = (unsigned char)((count_timer1_interrupt)>>8);
temp_send_data[5] = (unsigned char)((count_timer1_interrupt));
for(int i=0;i<2;i++) temp_send_data[i+6] = 0;
Tran_COM0(temp_send_data);
}*/
if (i >= 1000000) i = 0;
i++;
}
}
//* 系统延迟程序
void delay ( void )
{
volatile unsigned int i;
for (i=0;i<SPEED;i++) ;
}
//* 系统初始化程序
void system_init(void)
{
move_direction = 0;//0是远离电机运行
move_speed = 30;//单位都是mm/s,从1-30。计算公式是rc = 48000/(move_speed*200)
move_interrupt = 0;//单位mm, 计算公式是count_timer1_interrupt = move_distance*200
output_pulse0 = 0;
output_pulse1 = 0;
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ; //配置时钟
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<18)|(1<<17)) ); //配置为输出IO口
AT91F_PIO_CfgInput( AT91C_BASE_PIOA, (1<<9)|(1<<10)|(1<<13)|(1<<14)); //配置为输入IO口|(1<<11)|(1<<12)
AT91F_PIO_CfgInputFilter( AT91C_BASE_PIOA, (1<<9)|(1<<10)|(1<<13)|(1<<14));//|(1<<11)|(1<<12)
//防止按钮信号出现抖动影响灵敏,加一个过滤器,斯密斯滤波
AT91F_MC_CfgPMC();
timer_init(); //初始化计时器中断
Usart_init_interrupt(); //初始化串口中断
*AT91C_US0_RPR = (unsigned int)temp_read_data ;
*AT91C_US0_RCR = 96 ;
*AT91C_US0_PTCR = AT91C_PDC_RXTEN ; //接受准备好
*AT91C_RSTC_RMR = (1<<0)||(0xA5<<24);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -