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

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

?? ex5.c

?? ucos在2407A上的移植
?? C
字號:
/*******************************************************************************
* Module    :   main.c
*
* Purpose   :   First bit of 'C' code that executes after startup (see boot.asm).
;				Starts up the operating system, uC/OS.
*
* Language  :   'c'
*
* Written   :   Kirby W. Cartwright, The Vanner Power Group, 06/29/98
*
* Modified  :
*
* Project   :   Vanner Power Group Modular Controller Project PX-02.
*
* Copyright :   (C) copyright 1998 by Vanner, Inc.  All Rights Reserved.
*
* Notes     :
*
* Unit Tested:
*
*******************************************************************************/

#define	LEDS	0x000C					/* LEDs Register	
#include <ioports.h>
#include <time.h>    */
#include "includes.h"
#include   "f2407_c.h"
#define LOOP_CNT       1   /* 1-n, or -1 = forever */

//  屏蔽中斷子程序        
unsigned int test1_exec;  /* you need one for each test,!=0=run, 0=no */
unsigned int test2_exec;
unsigned int test3_exec;
unsigned int test4_exec;
unsigned int test5_exec;
unsigned int test6_exec;
unsigned int test7_exec;


unsigned int error_code;     /* ms byte = main test #, ls byte = error code */
unsigned int halt_on_error;
unsigned int print_on_error;
unsigned int led_error_code;
unsigned int print_header;

OS_EVENT *pevent0;


extern void KickDog(void);

OS_STK Task0[OS_TASK_IDLE_STK_SIZE];
//OS_STK Task1[OS_TASK_IDLE_STK_SIZE];
///OS_STK Task2[OS_TASK_IDLE_STK_SIZE];
//OS_STK Task4[OS_TASK_IDLE_STK_SIZE];
OS_STK Task5[OS_TASK_IDLE_STK_SIZE];

void LEDTask0(void *); 
//void LEDTask1(void *);
//void LEDTask2(void *);
//void CAPTask4(void *);
void ADCTask5(void *);
/*******************************************************************************
*
* Routine	:   main
*
* Purpose   : 	Initialize further hardware, start multitasking.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:
*
*******************************************************************************/
void main(void)
	{
	int i;
	extern void ConfigureWatchDog(void);
    ConfigureWatchDog();
	OSInit();
	*PEDATDIR=*PEDATDIR&0x0fff0;
	OSTaskCreate(LEDTask0,(void *)&i,(void *)&Task0[OS_TASK_IDLE_STK_SIZE], 10);       
    //OSTaskCreate(LEDTask1,(void *)&i,(void *)&Task1[OS_TASK_IDLE_STK_SIZE], 20);
    //OSTaskCreate(LEDTask2,(void *)&i,(void *)&Task2[OS_TASK_IDLE_STK_SIZE], 30);
    //pevent0=OSSemCreate(0);
    //pevent0->OSEventGrp		|=OSMapTbl[prio >> 3];
    OSTaskCreate(ADCTask5,(void *)&i,(void *)&Task5[OS_TASK_IDLE_STK_SIZE], 14);
    OSStart();                                             /* Start multitasking */
	}

/*******************************************************************************
*
* Routine	:   void abort(void)
*
* Purpose   : 	Satisfy a link requirement.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:   Should never get here.  Should add code to annunciate if we
*				ever do.
*
*******************************************************************************/
/*void abort(void)
	{
    while (1);
    }*/
/*******************************************************************************
*
* Routine	:   void interrupt DefaultISR(void)
*
* Purpose   : 	Supply a default ISR for unused vectors.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:   Should add code to annunciate if we ever get here.
*
*******************************************************************************/
void interrupt DefaultISR(void)
	{
    }
/*******************************************************************************
*
* Task		:   void TimeOfDayTask(void *j);
*
* Purpose   : 	Time of day task.
*
* Inputs    :   Pointer to context?  Pointer to time/date structure.
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).  Should never return.
*
* Note(s)	:   Should add code to go update global time and date structures.
*				Y2K compliant.
*				Should add code to initialize from hardware RTC on power-up.
*				The actual interrupt rate is 15625/256=61.03515625 Hz.
*
*******************************************************************************/
#define MS_TIME_LOOP   0x500



unsigned int wait_ms( volatile unsigned int delay_val )
{
    unsigned int i;
/*    unsigned int ms_ctr;  */
    int ms_ctr;
    for ( i = 0; i < delay_val; i++ )
    {
	ms_ctr = MS_TIME_LOOP;

	while ( ms_ctr )
	{
	    ms_ctr--;
	}
    }

    return( delay_val );
}
/******************************************************************************/
volatile unsigned int configdata;

void set_wait(void);
void set_wait(void)
{

  configdata =	IOWSB1+DSWSB1+PSWSB1; 	 /* 2 waits for off chip I/O */
  OUTMAC( _WSGR, configdata);
}

void set_system(void)
{
  unsigned int SCSR1_Data;

	
  SCSR1_Data = *SCSR1;

  SCSR1_Data |= (ADC_CLKEN | SCI_CLKEN | SPI_CLKEN | CAN_CLKEN | EVB_CLKEN | EVA_CLKEN);

  
  *SCSR1 = SCSR1_Data;
	
}

void test_init(void)
{
  test1_exec = TEST1;  /* data space ram test,run test if !=0, no if 0 */
  test2_exec = TEST2;  /* code space ram test,run test if !=0, no if 0 */
  test3_exec = TEST3;  /* onchip uart test,run test if !=0, no if 0 */
  test4_exec = TEST4;  /* dac test, run test if !=0, no if 0 */
  test5_exec = TEST5;  /* led test, run test if !=0, no if 0 */
  test6_exec = TEST6;  /* ti led test, run test if !=0, no if 0 */
  test7_exec = TEST7;  /* ti switch, run test if !=0, no if 0 */

  error_code = 0;               /* show no error */
  halt_on_error = 1;            /* stop if error occurred */
  print_on_error = 0;           /* do not print error info to uart */
  led_error_code = 0;           /* don't put on leds */
  print_header = 0;             /* do not print header info to uart */

  set_wait();                   /* set up wait states for I/O */

  set_system();

  set_pll();


}

//void error_process(unsigned int);
void error_process(unsigned int bad_code)
{
  error_code = bad_code;          /* put in global location */
  if (print_on_error)             /* print msg to uart ? */
  {
  }
  if (led_error_code)             /* put error code on leds ? */
  {
  }
}


/******************************************************************/


void LEDTask0(void *j)
	{
	 int loop_var,i;
     unsigned int error_state, test_num;
     INT8U *err;
     test_init();                           /* init variables & hardware */
     for (i=1 ; i<=4 ; i++)
       {
        ti_led_off(i);
       }    
   // volatile INT8U LEDTick=0;
   	   asm("        LDP	#0E8H");    //指向定時器T1的定時器控制器T1CON(7404H)
       asm("        LACC	4");
       asm("        OR		#040H");   //使能定時器T1
       asm("        SACL	4");
   	 for(;;)
     {  
      //if (test5_exec)
        //{
                                  /* end of error */
       //}                                  /* end of test6_exec != 0 */
		led_setup();
		led_ds5((unsigned int) 0x0001);    /* all leds on */
    	led_ds6((unsigned int) 0x0001);

    	wait_ms( 50 );

    	led_ds5((unsigned int) 0x0000);   /* all leds off */
    	led_ds6((unsigned int) 0x0000);

    	//wait_ms( 500 );
                             /* inc the test num */
      //OSSemPend(pevent0,10*OS_TICKS_PER_SEC,err);
       //OSTimeDlyHMSM(0,0,4,0);
     OSTimeDly(5*OS_TICKS_PER_SEC);
      //goto led_fail;
      
      }
   }        
/*******************************************************************************
*
* Task		:   void TimeOfDayTask(void *j);
*
* Purpose   : 	Time of day task.
*
* Inputs    :   Pointer to context?  Pointer to time/date structure.
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).  Should never return.
*
* Note(s)	:   Should add code to go update global time and date structures.
*				Y2K compliant.
*				Should add code to initialize from hardware RTC on power-up.
*				The actual interrupt rate is 15625/256=61.03515625 Hz.
*
*******************************************************************************/

/*void LEDTask1(void *j)
	{
	int ctr,i,exetimes;
    unsigned int error_state, test_num;

    exetimes=0;
    test_init();                           /* init variables & hardware 
  
    //for (i=1 ; i<=4 ; i++)
     //{
     //  ti_led_off(i);
   
     //}  
   // volatile INT8U LEDTick=0;
    for(;;)
    {    
       if(exetimes==9)
      {
      	OSSemPost(pevent0);	
      	exetimes=0;
      }
      else
      {exetimes++;
        for (ctr=1; ctr <= 4; ctr++)      /* turn all leds on 
    	{
      		ti_led_on(ctr);
    	}
      
      	wait_ms( 200 );

    	for (ctr=1; ctr <= 4; ctr++)      /* turn all leds off 
    	{
      		ti_led_off(ctr);
    	}
    	//wait_ms( 200 );
      
      }
      OSTimeDlyHMSM(0,0,1,0);
      //OSTimeDly(0.5*OS_TICKS_PER_SEC);
      //goto ti_led_fail;

      }
    }  
    
 /**********************************************************************
  void LEDTask2(void *j) 
  {
  unsigned int ticker, ctr;

  
  for (;;)
  {
    for (ctr=1; ctr <= 4; ctr++)
    {
      ti_led_on(ctr);
      wait_ms( 200 );
      ti_led_off(ctr);
      wait_ms( 200 );
    }

    //wait_ms( 200 );
  OSTimeDlyHMSM(0,0,0,30);
  //OSTimeDly(0.2*OS_TICKS_PER_SEC);
  }
  } 
  */
  /*****************************************************
  SPI experimnet module
  ******************************************************/
 // 系統(tǒng)初始化子程序
int               ADRESULT[16];	// 定義一個數(shù)組用于保存AD轉換的結果
volatile  unsigned  int  *j;	// 定義一個指針變量j
int i,k;
void inline disable() 
{
    asm(" setc INTM");
}
// 開總中斷子程序
void inline enable()
{
    asm(" clrc INTM");
}
// 系統(tǒng)初始化子程序
void  initial()
{
   asm(" setc      SXM");// 符號位擴展有效
   asm(" clrc     OVM");	// 累加器中結果正常溢出
   asm(" clrc      CNF");// B0被配置為數(shù)據(jù)存儲空間
  // *SCSR1=0x83FE;// CLKIN=15M,CLKOUT=2*CLKIN=30M
   *WDCR=0x0E8;	// 不使能看門狗,因為SCSR2中的WDOVERRIDE
			// 即WD保護位復位后的缺省值為1,故可以用
	  		// 軟件禁止看門狗
   *IMR=0x0022;	//  允許INT1中斷
   *IFR=0x0FFFF;	//  清除全部中斷標志,"寫1清0"
}
// AD初始化子程序
void  ADINIT()
{
   *T4CNT=0X0000;	// T4計數(shù)器清0
   *T4CON=0X170C;	// T4為連續(xù)增計數(shù)模式,128分頻,且選用內部時鐘源
   *T4PER=0X75;	// 設置T4的周期寄存器
   *GPTCONB=0X400;	// T4周期中斷標志觸發(fā)AD轉換
   *EVBIFRB=0X0FFFF;	// 清除EVB中斷標志,寫"1"清0
   *ADCTRL1=0X30;	// 采樣時間窗口預定標位ACQ PS3-ACQ PS0為0,
		// 轉換時間預定標位CPS為0,AD為啟動/停止模式,排
		// 序器為級連工作方式,且禁止特殊的兩種工作模式
   *ADCTRL2=0X8404;	// 可以用EVB的一個事件信號觸發(fā)AD轉換,
	// 且用中斷模式1
   *MAXCONV=0X0F;	// 16通道
   *CHSELSEQ1=0X3210;
   *CHSELSEQ2=0X7654;
   *CHSELSEQ3=0X0BA98;
   *CHSELSEQ4=0X0FEDC;	// 轉換通道是0-15  
}
// 啟動AD轉換子程序(通過啟動定時器4的方式間接啟動)
void  ADSOC()
{
   *T4CON=*T4CON|0X40;// 啟動定時器4
}

void ADCTask5(void *j)
{
   disable( );	// 禁止總中斷
   initial( );	// 系統(tǒng)初始化
   ADINIT( );	// AD初始化子程序
   enable( );	// 開總中斷
   ADSOC( );	// 啟動AD轉換
   while(1)
   {
     // if(i==0x10)   break;	// 如果已發(fā)生中斷,則停止等待(發(fā)生中斷后,i=0x10)
  	if(k>=10)
  	{
  			*T4CON=*T4CON&0X0FFBF;	// 停止定時器4,即間接停止A/D轉換
  			k=0;
  			break;
  	}
  	}	// 等待中斷發(fā)生
  // *T4CON=*T4CON&0X0FFBF;	// 停止定時器4,即間接停止A/D轉換
  // while(1)
  // {
   //    ;
   //}	// 死循環(huán),在實際的工程應用中在此可以利用A/D轉換的結果用于一些運算
}

// 若是其它中斷則直接返回子程序
void interrupt nothing()
{
  enable();
   return;
}
// AD中斷服務子程序
void  interrupt  adint()
{
   
   asm(" clrc      SXM");	// 抑制符號位擴展
   j=RESULT0;	// 取得RESULT0的地址
   for(i=0;i<=15;i++,j++)
   {
      ADRESULT[i]=*j>>6; 	// 把AD轉換的結果右移6位后存入規(guī)定的數(shù)組
      //cesi=ADRESULT[i];		// 檢驗每個A/D轉換的結果
   }	
   k++;
   *ADCTRL2=*ADCTRL2|0X4200;	// 復位SEQ1,且清除INT FLAG SEQ1標志寫"1"清0
   enable();	// 開總中斷,因為一進入中斷總中斷就自動關閉了
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夫妻av一区二区| 一区二区三区不卡在线观看| 91黄视频在线观看| 成人激情开心网| 国产精品中文有码| 国产麻豆视频精品| 国产精品白丝jk白祙喷水网站| 久久69国产一区二区蜜臀| 老司机免费视频一区二区三区| 久久精品国产99| 精品一区二区三区在线观看| 久久国产免费看| 国产麻豆精品视频| 成人午夜视频福利| 色欧美88888久久久久久影院| 日本韩国一区二区三区视频| 欧美私人免费视频| 欧美一二三区在线| 久久久777精品电影网影网| 久久视频一区二区| 国产免费成人在线视频| 亚洲精品视频在线观看网站| 亚洲r级在线视频| 韩国成人在线视频| 99久久精品国产麻豆演员表| 欧美午夜精品理论片a级按摩| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲视频中文字幕| 亚洲sss视频在线视频| 九九九精品视频| 91色.com| 精品国产一二三区| 亚洲色图欧美偷拍| 美女国产一区二区三区| www.欧美色图| 欧美一级黄色片| 中文字幕在线视频一区| 午夜精品久久久久久久99水蜜桃 | 欧美日本免费一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av | 91一区一区三区| 欧美精品亚洲一区二区在线播放| 欧美精品一区男女天堂| 亚洲精品亚洲人成人网在线播放| 韩日av一区二区| 欧美在线观看视频一区二区三区| 久久亚洲精品国产精品紫薇| 亚洲综合免费观看高清在线观看 | 性欧美大战久久久久久久久| 国产精品亚洲午夜一区二区三区 | 亚洲成av人影院| 国产成人av资源| 欧美一区二区在线不卡| 一区二区三区四区不卡视频| 国产福利电影一区二区三区| 欧美一区二区视频免费观看| 一区二区三区鲁丝不卡| 成人黄色小视频在线观看| 日韩女优av电影在线观看| 亚洲一区日韩精品中文字幕| 国产大陆亚洲精品国产| 日韩欧美成人一区二区| 亚洲成人av电影| 91丨九色丨蝌蚪丨老版| 欧美韩日一区二区三区四区| 久久国内精品视频| 欧美一级二级三级乱码| 人妖欧美一区二区| 欧美久久久久久久久中文字幕| 亚洲色大成网站www久久九九| 懂色中文一区二区在线播放| 国产视频一区不卡| 国产精品一区二区x88av| 欧美变态tickle挠乳网站| 日本不卡视频在线观看| 9191久久久久久久久久久| 午夜精品福利一区二区三区蜜桃| 欧美性猛交xxxx黑人交| 亚洲国产精品久久久男人的天堂| 97精品国产露脸对白| 亚洲男帅同性gay1069| 91美女在线观看| 亚洲美女免费视频| 欧美三级资源在线| 国产69精品久久久久毛片| 国产欧美久久久精品影院| 国产不卡免费视频| 最新中文字幕一区二区三区 | 精品一区二区免费视频| 久久精品一区二区| 北条麻妃一区二区三区| 亚洲精品老司机| 欧美剧情电影在线观看完整版免费励志电影 | 日韩欧美高清在线| 国产91丝袜在线播放0| 国产精品国产a| 欧美日韩一区视频| 日韩不卡一区二区三区| 日韩免费高清电影| 成人app在线观看| 亚洲一区二区三区美女| 日韩女优电影在线观看| 成人精品视频.| 亚洲一区二区中文在线| 精品国产伦一区二区三区观看体验 | 国产91在线|亚洲| 最新不卡av在线| 91精品国产综合久久蜜臀| 国产在线一区二区综合免费视频| 一区二区中文字幕在线| 3d动漫精品啪啪一区二区竹菊| 国产一区二区看久久| 亚洲日本va午夜在线电影| 日韩三级电影网址| 色综合天天综合给合国产| 蜜桃视频免费观看一区| 亚洲欧美日韩久久| 亚洲精品美国一| 欧美sm美女调教| 色狠狠桃花综合| 激情文学综合网| 亚洲图片一区二区| 国产精品久久福利| 精品裸体舞一区二区三区| 色综合咪咪久久| 国产黑丝在线一区二区三区| 水蜜桃久久夜色精品一区的特点 | 97se亚洲国产综合自在线观| 秋霞av亚洲一区二区三| 一区二区三区在线视频免费| 国产欧美日韩视频一区二区| 777色狠狠一区二区三区| 色94色欧美sute亚洲线路一久| 国产精品亚洲第一| 国内成人自拍视频| 青青草精品视频| 午夜电影一区二区| 亚洲综合一区二区三区| 中文欧美字幕免费| 亚洲精品一区二区三区香蕉 | 91麻豆6部合集magnet| 国产揄拍国内精品对白| 日本aⅴ亚洲精品中文乱码| 亚洲成人综合视频| 一区二区在线观看视频在线观看| 国产亚洲va综合人人澡精品| 欧美tickling网站挠脚心| 日韩一区二区中文字幕| 538prom精品视频线放| 欧美嫩在线观看| 欧美精品第一页| 久久久国产精品麻豆| 日韩女优视频免费观看| 91精品国产色综合久久ai换脸 | 在线成人高清不卡| 6080亚洲精品一区二区| 欧美精品色一区二区三区| 欧美伊人精品成人久久综合97| 色噜噜狠狠色综合欧洲selulu| 91麻豆精东视频| 欧美少妇性性性| 欧美色网站导航| 3d成人动漫网站| 日韩欧美国产wwwww| 久久久99免费| 国产精品久久久久久亚洲伦| 综合久久久久久久| 亚洲一区二区三区视频在线| 天堂av在线一区| 捆绑紧缚一区二区三区视频| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩中文字幕91| 久久精品国产99国产| 国产一区 二区| 高清久久久久久| 91网上在线视频| 91丨porny丨国产| 777亚洲妇女| 久久只精品国产| 国产精品传媒入口麻豆| 一区二区三区在线免费播放| 亚洲国产人成综合网站| 久久国内精品视频| www.日韩精品| 日韩一区二区三区四区五区六区| 久久一区二区三区四区| 亚洲同性gay激情无套| 日韩成人免费看| 国产成人自拍网| 91丨九色丨尤物| 91麻豆精品国产91久久久久| 亚洲国产经典视频| 亚洲成人免费在线观看| 狠狠色综合播放一区二区| 成人免费的视频| 日韩一区二区三区av| 国产精品久久久久久久久搜平片| 亚洲一区二区三区国产| 大白屁股一区二区视频| 91精品福利在线一区二区三区|