?? 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 + -