📄 main.c
字号:
/****************************************Copyright (c)
**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info----------------------------------------------
---------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**---------------------------------------------------------------------
---------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**---------------------------------------------------------------------
---------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
************************************************************************
********************************/
#include "config.h"
uint8 SAT=0;
uint16 TAB[4]={0x01,0x02,0x05,0x0A};
uint16 h=0;
const uint32 KEY1=1<<16;
/***********************************************************************
**********************************
**Timer0_InitExt()
**TIMER0初始化
************************************************************************
********************************/
void Timer0_InitExt(void)
{
T0TC =0;
T0PR =0;
T0MCR =0x03;
T0MR0 =Fpclk/20;
T0TCR =0x01;
}
//-----------------delayns----------------------
void delays(void)
{ uint8 i,j;
for(i=100;i>0;i--)
for(j=50;j>0;j--);
}
/*-----------------------------------------------*/
/***********************************************************************
**********************************
**IRQ_Timer0()
**TIMER0中断服务程序
************************************************************************
********************************/
void __irq IRQ_Timer0(void)
{
SAT = 1;
T0IR=0x01;
VICVectAddr=0;
}
/***********************************************************************
**********************************
**IRQ_Init()
**设置定时器0中断IRQ
************************************************************************
********************************/
void IRQ_Init(void)
{
VICIntSelect=0x00;
VICVectCntl0=0x20|0x04;
VICVectAddr0=(uint32)IRQ_Timer0; //设置中断服务程序地址
VICIntEnable=(1<<0x04); //使能定时器0中断
}
/***********************************************************************
**********************************
**main()
**控制步进电机正反转(给脉冲的顺序,正给,反给)
控制步进电机旋转的快慢(用定时器控制每给一个脉冲的时间)
************************************************************************
********************************/
int main (void)
{
uint8 zx=0;
PINSEL0=0x00000000;
IO0DIR=0x000200F0; //将P0.0~P0.3设置为输出状态
Timer0_InitExt();
IRQ_Init();
IRQEnable();
IO0CLR = 0x0f;
while(1)
{
//uint8 K;
//IO0CLR = 0x0f;
if(SAT == 1)
{
IOCLR=0x0f0;
IOSET=TAB[h]<<4;
//K = IO0PIN;
//K = K&0xffff0000;
if((IO0PIN&KEY1)==0) //正转
{
zx = 1;
}
else //反转
{
zx = 0;
}
if(zx == 1)
{
h++;
if(h>=4)
{
h = 0;
}
}
else
{
h--;
if(h==0xffff)
{
h = 3;
}
}
//IOCLR=TAB[h];
//IOSET=TAB[h];
SAT = 0;
}
}
return 0;
}
/***********************************************************************
**********************************
** End Of File
************************************************************************
********************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -