亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? samotor.c

?? 北京瑞泰科技DSPF2812_A步進電機控制程序
?? C
字號:


#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

// Prototype statements for functions found within this file.
interrupt void cpu_timer0_isr(void);
void Delay(unsigned int nTime);

void Gpio_select(void);
void error(int);
void program_stop();
void Gpio_PortA(void);
void Gpio_PortB(void);
void Gpio_PortF(void);
void Gpio_PortDEG(void);
char ConvertScanToChar(unsigned char cScanCode);


#define T46uS		0x0d40
#define SCANCODE_0 0x70
#define SCANCODE_1 0x69
#define SCANCODE_2 0x72
#define SCANCODE_3 0x7A
#define SCANCODE_4 0x6B
#define SCANCODE_5 0x73
#define SCANCODE_6 0x74
#define SCANCODE_7 0x6C
#define SCANCODE_8 0x75
#define SCANCODE_9 0x7D
#define SCANCODE_Del 0x49
#define SCANCODE_Enter 0x5A
#define SCANCODE_Plus 0x79
#define SCANCODE_Minus 0x7B
#define SCANCODE_Mult 0x7C
#define SCANCODE_Divid 0x4A
#define SCANCODE_Num 0x77

Uint16 var1 = 0;
Uint16 var2 = 0;
Uint16 var3 = 0;
Uint16 test_count = 0;
Uint16 Test_flag = 0;
Uint16 Test_var  = 0;
Uint16 Test_status[32];

Uint16 PASS_flag = 0;
unsigned int uWork;

int jishu=0;
unsigned int uWork,nCount;
unsigned int pwm1[8]={ 0x8e,0x8c,0x8d,0x89,0x8b,0x83,0x87,0x86 };
unsigned int pwm2[8]={ 0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e };
int nAddStep,nStep;

void main(void)
{   
	int nCount=0;
    char cKey;
	unsigned int nScanCode;
	

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP281x_SysCtrl.c file.
   InitSysCtrl();
// Step 2. Initalize GPIO: 
// This example function is found in the DSP281x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio();  // Skipped for this example  


// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts 
   DINT;

// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.  
// This function is found in the DSP281x_PieCtrl.c file.
   InitPieCtrl();
   
// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();

// Initialize the PIE vector table with pointers to the shell Interrupt 
// Service Routines (ISR).  
// This will populate the entire table, even if the interrupt
// is not used in this example.  This is useful for debug purposes.
// The shell ISR routines are found in DSP281x_DefaultIsr.c.
// This function is found in DSP281x_PieVect.c.
   InitPieVectTable();
// Interrupts that are used in this example are re-mapped to
// ISR functions found within this file.  
   EALLOW;  // This is needed to write to EALLOW protected registers
   PieVectTable.TINT0 = &cpu_timer0_isr;
   EDIS;    // This is needed to disable write to EALLOW protected registers
  
// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP281x_InitPeripherals.c
// InitPeripherals(); // Not required for this example

   /////InitCpuTimers();   // For this example, only initialize the Cpu Timers
   	CpuTimer0.RegsAddr = &CpuTimer0Regs;
	// Initialize timer period to maximum:	
	////CpuTimer0Regs.PRD.all  = T46uS*9*6/5;
	CpuTimer0Regs.PRD.all  = 0x8fff;

	// Initialize pre-scale counter to divide by 1 (SYSCLKOUT):	
	CpuTimer0Regs.TPR.all  = 0;
	CpuTimer0Regs.TIM.all  = 0;
	CpuTimer0Regs.TPRH.all = 0;
	// Make sure timer is stopped:
	CpuTimer0Regs.TCR.bit.TSS = 1;
	CpuTimer0Regs.TCR.bit.SOFT = 1;
	CpuTimer0Regs.TCR.bit.FREE = 1;
	// Reload all counter register with period value:
	CpuTimer0Regs.TCR.bit.TRB = 1;
	CpuTimer0Regs.TCR.bit.TIE = 1;
	// Reset interrupt counters:
	CpuTimer0.InterruptCount = 0;	         


    //StartCpuTimer0();

// Step 5. User specific code, enable interrupts:


// Enable CPU INT1 which is connected to CPU-Timer 0:
   IER |= M_INT1;

// Enable TINT0 in the PIE: Group 1 interrupt 7
   PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

// Enable global Interrupts and higher priority real-time debug events:
   EINT;   // Enable Global interrupt INTM
   ERTM;   // Enable Global realtime interrupt DBGM
   nStep=0; nAddStep=1;
   *(int *)0x108000=0x80;		// 初始化ICETEK-CTR
   *(int *)0x108000=0x0;
   *(int *)0x108000=0x80;
   *(int *)0x108007=0;			// 關閉東西方向的交通燈
   *(int *)0x108007=0x40;	// 關閉南北方向的交通燈
   *(int *)0x108007=0xc2;//開步進電機
   uWork=*(int *)0x108002;
   StartCpuTimer0();
   while (1)
	{
	 if ( nCount==0 )
		{
			nScanCode=*(int *)0x108001;
			nScanCode&=0x0ff;
			uWork=*(int *)0x108002;
			//*(int *)0x108007=0x0c0;
			if ( nScanCode!=0 )
			{
				if ( nScanCode==SCANCODE_Enter )	break;
				else
				{
					cKey=ConvertScanToChar(nScanCode);
				}
				cKey=ConvertScanToChar(nScanCode);
				if ( cKey!=0 )
				{
					if ( cKey=='4' )	nAddStep=1;
					else if ( cKey=='6' )	nAddStep=-1;
				}
			}
		}
	}

} 


interrupt void cpu_timer0_isr(void)
{  
   CpuTimer0.InterruptCount++;

   // Acknowledge this interrupt to receive more interrupts from group 1
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
   CpuTimer0Regs.TCR.bit.TIF = 1;
   CpuTimer0Regs.TCR.bit.TRB = 1;
   *(int *)0x108007=pwm2[nStep];
   nStep+=nAddStep;
   if ( nStep<0 )	nStep=7;
   else if ( nStep>7 )	nStep=0;
   nCount++;nCount%=64;
   StopCpuTimer0();
   Delay(6);
   
   StartCpuTimer0();
}

void Delay(unsigned int nDelay)
{
	int ii,jj,kk=0;
	for ( ii=0;ii<nDelay;ii++ )
	{
		for ( jj=0;jj<64;jj++ )
		{
			
			kk++;
		}
	}
}

void Gpio_PortA(void)
{    

// GPIO Test #2: 
// Configure Upper 8 bits of Port as inputs and lower 8 bits as outputs    
// Loop back bits [7:0] to bits [15:8]
// Don't set any input qualifier
 
    var1= 0x0000;       // sets GPIO Muxs as I/Os
    var2= 0x00FF;       // sets GPIO 15-8 DIR as inputs, 7-0 DIR as outputs
    var3= 0x0000;       // Don't set any input qualifier
    
    Gpio_select();    
    
    test_count = 0;
    Test_status[Test_var] = 0x0002;
    Test_var++;
    
    Test_status[Test_var] = 0xD0BE;      // Set the default value of status 
                                         // to "PASSED"
    GpioDataRegs.GPACLEAR.all = 0x00FF;  // Test Clear
    asm(" RPT #5 ||NOP");                             
    GpioDataRegs.GPASET.bit.GPIOA3=1;
 
}

void Gpio_PortB(void)
{    

// GPIO Test #2: 
// Configure Upper 8 bits of Port as inputs and lower 8 bits as outputs    
// Loop back bits [7:0] to bits [15:8]
// Don't set any input qualifier
 
    var1= 0x0000;       // sets GPIO Muxs as I/Os
    var2= 0x00FF;       // sets GPIO 15-8 DIR as inputs, 7-0 DIR as outputs
    var3= 0x0000;       // Don't set any input qualifier
    
    Gpio_select();    
    
    test_count = 0;
    Test_status[Test_var] = 0x0002;
    Test_var++;
    
    Test_status[Test_var] = 0xD0BE;      // Set the default value of status 
                                         // to "PASSED"
    GpioDataRegs.GPBCLEAR.all = 0x00FF;  // Test Clear
    asm(" RPT #5 ||NOP");                             
    GpioDataRegs.GPBSET.bit.GPIOB4=1;
 
}

void Gpio_select(void)
{
     EALLOW;
     
    GpioMuxRegs.GPAMUX.all=var1;   // Configure MUXs as digital I/Os or
    GpioMuxRegs.GPBMUX.all=var1;   // peripheral I/Os
    GpioMuxRegs.GPDMUX.all=var1;
    GpioMuxRegs.GPFMUX.all=var1;         
    GpioMuxRegs.GPEMUX.all=var1; 
    GpioMuxRegs.GPGMUX.all=var1;
                                        
    GpioMuxRegs.GPADIR.all=var2;   // GPIO PORTs  as output
    GpioMuxRegs.GPBDIR.all=var2;   // GPIO DIR select GPIOs as output 
    GpioMuxRegs.GPDDIR.all=var2;
    GpioMuxRegs.GPEDIR.all=var2;        
    GpioMuxRegs.GPFDIR.all=var2; 
    GpioMuxRegs.GPGDIR.all=var2;

    GpioMuxRegs.GPAQUAL.all=var3;  // Set GPIO input qualifier values
    GpioMuxRegs.GPBQUAL.all=var3;   
    GpioMuxRegs.GPDQUAL.all=var3;
    GpioMuxRegs.GPEQUAL.all=var3;
 
    EDIS;
     
}     

char ConvertScanToChar(unsigned char cScanCode)
{
	char cReturn;
	
	cReturn=0;
	switch ( cScanCode )
	{
		case SCANCODE_0: cReturn='0'; break;
		case SCANCODE_1: cReturn='1'; break;
		case SCANCODE_2: cReturn='2'; break;
		case SCANCODE_3: cReturn='3'; break;
		case SCANCODE_4: cReturn='4'; break;
		case SCANCODE_5: cReturn='5'; break;
		case SCANCODE_6: cReturn='6'; break;
		case SCANCODE_7: cReturn='7'; break;
		case SCANCODE_8: cReturn='8'; break;
		case SCANCODE_9: cReturn='9'; break;
//		case SCANCODE_F1: 
		case SCANCODE_Plus: cReturn='+'; break;
//		case SCANCODE_F2: 
		case SCANCODE_Minus: cReturn='-'; break;
	}
	 
	return cReturn;
}


//===========================================================================
// No more.
//========================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品乱码久久久久久| 国产一区二区三区免费看| 国产精品久久看| 久久久高清一区二区三区| 亚洲国产精品av| 樱桃国产成人精品视频| 亚洲v中文字幕| 国产精品中文字幕日韩精品 | 亚洲免费伊人电影| 视频一区欧美日韩| 韩国毛片一区二区三区| 99精品视频中文字幕| 欧美一区二区在线播放| 国产精品少妇自拍| 蜜桃视频一区二区| 欧美美女一区二区三区| 国产精品久久看| 国产不卡在线视频| 精品成a人在线观看| 日产国产欧美视频一区精品| 国产99久久精品| 日韩免费性生活视频播放| 91香蕉视频黄| 日本电影欧美片| 欧美aaaaa成人免费观看视频| 欧美日韩久久一区| 亚洲乱码日产精品bd| 欧美性受xxxx| 成人动漫中文字幕| 久久99精品久久久久久| 亚洲制服丝袜av| 久久久久久99久久久精品网站| 欧美午夜电影在线播放| 人妖欧美一区二区| 亚洲精品视频在线看| 欧美mv和日韩mv的网站| 视频在线在亚洲| 91麻豆swag| 国产女主播一区| 99在线视频精品| 国产精品久久久久影院老司| 国产美女娇喘av呻吟久久| 日韩美女视频在线| 国产高清不卡一区| 国产欧美一区二区精品久导航| 国产精品一级片在线观看| 日韩天堂在线观看| 狠狠色狠狠色综合日日91app| 精品国产伦理网| 99久久99久久精品国产片果冻| 国产精品久久久久久久浪潮网站| 91同城在线观看| 精品亚洲porn| 成人欧美一区二区三区在线播放| 欧美在线播放高清精品| 精品在线视频一区| 亚洲成人自拍一区| 中文欧美字幕免费| 日韩欧美在线不卡| 色综合久久久久久久久久久| 亚洲一区二区三区四区在线| 久久久久久久综合日本| 欧美亚洲动漫另类| 成人av免费网站| 国产在线精品国自产拍免费| 亚洲一区二区三区国产| 亚洲免费观看视频| 亚洲人一二三区| 欧美国产成人精品| 最近中文字幕一区二区三区| 欧美日韩国产系列| 欧美一区二区福利在线| 国产精品免费看片| 天天影视色香欲综合网老头| 免费成人小视频| 成人国产精品免费网站| 色欧美88888久久久久久影院| 欧美色电影在线| 国产嫩草影院久久久久| 午夜成人免费电影| 成人精品免费看| 日韩精品专区在线影院重磅| 国产精品久久久久久久久免费相片| 中文字幕亚洲一区二区av在线 | 久久久久97国产精华液好用吗| 亚洲精品第一国产综合野| 久久激情五月激情| 欧美日韩国产天堂| 亚洲日本在线看| 成人综合在线视频| 中文成人av在线| 亚洲欧美精品午睡沙发| 久久99国产精品久久99| 欧洲生活片亚洲生活在线观看| 国产精品久久看| 欧美经典一区二区三区| 欧美性大战久久久| 国产成人av一区| 久久精品二区亚洲w码| 日韩电影免费在线观看网站| 一区二区三区在线看| 亚洲欧美国产三级| 亚洲欧洲一区二区在线播放| 久久久精品天堂| 日本一区二区三区国色天香| 日韩精品中文字幕在线一区| 日韩色视频在线观看| 91精品国产综合久久久久久久久久 | 欧美一区二区三区不卡| 欧美一级xxx| 国产欧美中文在线| 亚洲乱码精品一二三四区日韩在线 | 久久久五月婷婷| 久久精品综合网| 91成人看片片| 欧美视频一区二区三区在线观看| 69堂亚洲精品首页| 亚洲免费观看高清完整版在线观看| 亚洲色欲色欲www在线观看| 免费在线看成人av| 成人黄色大片在线观看| 欧美美女bb生活片| 亚洲少妇中出一区| 国产+成+人+亚洲欧洲自线| 欧美精品久久99| 亚洲麻豆国产自偷在线| 国产主播一区二区| 欧美精品粉嫩高潮一区二区| 国产精品久久久久久久久晋中| 日韩av电影天堂| 欧美三级电影网| 亚洲一区二区三区四区在线 | 91一区二区在线观看| 欧美国产日本视频| 午夜免费久久看| eeuss鲁片一区二区三区| 欧美电影影音先锋| 亚洲永久精品国产| 成人18视频在线播放| 久久女同互慰一区二区三区| 亚洲国产欧美日韩另类综合| 国产精品99久久不卡二区| 91精品中文字幕一区二区三区| 国产精品国产三级国产普通话三级 | 欧美一级片免费看| 日韩av在线播放中文字幕| 91成人看片片| 亚洲在线免费播放| 在线观看精品一区| 中文字幕亚洲不卡| 色婷婷综合久色| 亚洲午夜精品一区二区三区他趣| 97久久超碰国产精品电影| 综合久久综合久久| 色一情一伦一子一伦一区| 亚洲人123区| 欧美久久久一区| 秋霞成人午夜伦在线观看| 日韩欧美一区电影| 国产一区二区不卡在线| 国产精品人妖ts系列视频| 成人av电影免费在线播放| 亚洲国产三级在线| 欧美一级高清片| 成人美女在线观看| 亚洲国产精品一区二区久久 | 成人免费电影视频| 亚洲风情在线资源站| 日韩欧美成人一区| 99久久免费国产| 毛片不卡一区二区| 亚洲国产成人在线| 日韩一区二区三区视频| 国产成人超碰人人澡人人澡| 亚洲一区二区中文在线| 精品少妇一区二区三区免费观看| 波多野结衣一区二区三区| 婷婷综合另类小说色区| 国产精品国产三级国产a| 91精品国产欧美一区二区成人| 不卡视频免费播放| 国产成人午夜高潮毛片| 日韩不卡免费视频| 亚洲成人你懂的| 一二三四区精品视频| 国产精品网友自拍| 国产亚洲美州欧州综合国| 欧美精品色一区二区三区| 91亚洲精品久久久蜜桃| 成人涩涩免费视频| 国产激情视频一区二区三区欧美 | 日韩一级黄色片| 亚洲综合精品自拍| 久久精品视频一区二区三区| 日韩一级高清毛片| 欧美肥大bbwbbw高潮| 欧美日韩精品三区| 欧美日韩精品欧美日韩精品| 欧美色综合网站| 欧美日本一区二区|