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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smartclock.c

?? uCos-ii 2.86 在C8051F410單片機上移植成功!!! 其中包括:UART驅(qū)動
?? C
字號:

#include "..\header files\includes.H"
#include "smaRTClock.h"	 

//-----------------------------------------------------------------------------
// Global Constants and Variables
//-----------------------------------------------------------------------------

#define SYSCLK         24500000        // SYSCLK frequency in Hz

#define BAUDRATE         115200        // Baud rate of UART in bps

#define RTCCLK            32768        // SmaRTClock frequency in Hz

#define RTC_DAY      2831155200        // Number of RTC counts in a day
#define RTC_HOUR      117964800        // Number of RTC counts in an hour
#define RTC_MINUTE      1966080        // Number of RTC counts in a minute
#define RTC_SECOND        32768        // Number of RTC counts in a second
#define RTC_HUNDRETH        328        // Number of RTC counts in a hundreth
                                       // of a second (rounded up)

#define SUSPEND            0x40        // Value to write to PMU0CF to place
                                       // the device in Suspend mode

#define SLEEP              0x80        // Value to write to PMU0CF to place
                                       // the device in Sleep Mode

#define POWER_MODE      SUSPEND        // Select between Suspend and Sleep	mode.	                                    

#define SWITCH_PRESSED        0        // Macros to determine switch state
#define SWITCH_NOT_PRESSED    1

#define FIVE_MS    5*(SYSCLK/12/1000)  // 5 ms delay constant
#define US_DELAY   (SYSCLK/12/1000)/10 // 500 us delay constant

// Used in debounce section of code
#define DEBOUNCE_INTERVAL  10          // Debounce interval in milliseconds
#define T3_DEBOUNCE_TICKS  DEBOUNCE_INTERVAL*(SYSCLK/12/1000)


 																								

//------------------------------------------------------------------------------- 



DATE_INFO event1;   // This will keep the runnnig date information                                       



void Init_DateINFO(void)
{
	 // Initialize DATE_INFO struct
   event1.seconds = SECOND_INIT;
   event1.minutes = MINUTE_INIT;
   event1.hours   = HOUR_INIT;
   event1.days    = DAY_INIT;
   event1.years   = (2000+YEAR_INIT);

}

//-----------------------------------------------------------------------------
// Leap_Year
//-----------------------------------------------------------------------------	
// Return Value : '1' if a leap year, '0' if not a leap year
// Parameters   : U16 year - the current year in the counter	
//-----------------------------------------------------------------------------

U8 Leap_Year (U16 year)
{
   if ((((year%4)==0) && ((year%100)!=0)) || ((year%400)==0))
   {
      return 1;
   }
   else
   {
      return 0;
   }
}

//-----------------------------------------------------------------------------
// Compute_Month
//-----------------------------------------------------------------------------
// Return Value : none
// Parameters   : 1) U16* month - pointer to month number variable (1-12)
//                2) U16* days - pointer to number of days  variable (1-31)
//                3) U16 total - total number of days to compute
//                   month and days from
//                4) U16 total - current year (in 20xx format)	
//-----------------------------------------------------------------------------

void Compute_Month (U16* month, U16* days, U16 total, U16 year)
{
   if (total < 32)                     // First month does not depend on
   {                                   // leap year
      (*month) = 1;                    // January
      (*days) = total;
   }
   else if (Leap_Year(year))
   {
      // Calculate month based on leap year
      if (total < 61)
      {
         (*month) = 2;                 // February
         (*days) = total-31;
      }
      else if (total < 92)
      {
         (*month) = 3;                 // March
         (*days) = total-60;
      }
      else if (total < 122)
      {
         (*month) = 4;                 // April
         (*days) = total - 91;
      }
      else if (total < 153)
      {
         (*month) = 5;                 // May
         (*days) = total - 121;
      }
      else if (total < 183)
      {
         (*month) = 6;                 // June
         (*days) = total-152;
      }
      else if (total < 214)
      {
         (*month) = 7;                 // July
         (*days) = total - 182;
      }
      else if (total < 245)
      {
         (*month) = 8;                 // August
         (*days) = total - 213;
      }
      else if (total < 275)
      {
         (*month) = 9;                 // September
         (*days) = total - 244;
      }
      else if (total < 306)
      {
         (*month) = 10;                // October
         (*days) = total-274;
      }
      else if (total < 336)
      {
         (*month) = 11;                // November
         (*days) = total - 305;
      }
      else
      {
         (*month) = 12;                // December
         (*days) = total - 335;
      }

   }
   else
   {
      // Calculate month based on non leap year
      if (total < 60)
      {
         (*month) = 2;                 // February
         (*days) = total-31;
      }
      else if (total < 91)
      {
         (*month) = 3;                 // March
         (*days) = total-59;
      }
      else if (total < 121)
      {
         (*month) = 4;                 // April
         (*days) = total - 90;
      }
      else if (total < 152)
      {
         (*month) = 5;                 // May
         (*days) = total - 120;
      }
      else if (total < 182)
      {
         (*month) = 6;                 // June
         (*days) = total-151;
      }
      else if (total < 213)
      {
         (*month) = 7;                 // July
         (*days) = total - 181;
      }
      else if (total < 244)
      {
         (*month) = 8;                 // August
         (*days) = total - 212;
      }
      else if (total < 274)
      {
         (*month) = 9;                 // September
         (*days) = total - 243;
      }
      else if (total < 305)
      {
         (*month) = 10;                // October
         (*days) = total-273;
      }
      else if (total < 335)
      {
         (*month) = 11;                // November
         (*days) = total - 304;
      }
      else
      {
         (*month) = 12;                // December
         (*days) = total - 334;
      }
   }
}


//-----------------------------------------------------------------------------
// RTC_Read
//-----------------------------------------------------------------------------	

INT8U RTC_Read (INT8U reg)
{
   reg &= 0x0F;                        // Mask low nibble
   RTC0ADR  = reg;                     // Pick register
   RTC0ADR |= 0x80;                    // Set BUSY bit to read
   while ((RTC0ADR & 0x80) == 0x80);   // Poll on the BUSY bit
   return RTC0DAT;                     // Return value
}

//-----------------------------------------------------------------------------
// RTC_Write
//-----------------------------------------------------------------------------


void RTC_Write (INT8U reg, INT8U value)
{
   reg &= 0x0F;                        // Mask low nibble
   RTC0ADR  = reg;                     // Pick register
   RTC0DAT = value;                    // Write data
   while ((RTC0ADR & 0x80) == 0x80);   // Poll on the BUSY bit
}
 
//-----------------------------------------------------------------------------
// RTC_Init
//-----------------------------------------------------------------------------

void RTC_Init (void)
{
   INT16U i;                              // Counter used in for loop

   UU32 alarm_interval_first;          // Stores first alarm value

   INT8U CLKSEL_SAVE = CLKSEL;


   RTC0KEY = 0xA5;                     // Unlock the smaRTClock interface
   RTC0KEY = 0xF1;	
	 
   RTC_Write (RTC0XCN, 0x60);          // Configure the smaRTClock
                                       // oscillator for crystal mode
                                       // Bias Doubling Enabled
                                       // AGC Disabled
																			 //0: smaRTClock is powered from VDD.

   RTC_Write (RTC0CN, 0x80);           // Enable smaRTClock oscillator


   //----------------------------------
   // Wait for smaRTClock to start
   //----------------------------------	  

	 for(i=0;i<1000;i++);		
   
   while ((RTC_Read (RTC0XCN) & 0x10)== 0x00);	// Wait for smaRTClock valid

   
   //----------------------------------
   // smaRTClock has been started
   //----------------------------------

   RTC_Write (RTC0XCN, 0xC0);          // Enable Automatic Gain Control
                                       // and disable bias doubling

   RTC_Write (RTC0CN, 0xC0);           // Enable missing smaRTClock detector
                                       // and leave smaRTClock oscillator
                                       // enabled. 


   //----------------------------------
   // Set the smaRTClock Alarm
   //----------------------------------

    // Calculate the alarm interval in smaRTClock ticks
   alarm_interval_first.U32 = (RTC_DAY-TIME_INIT);

   // Copy the alarm interval to the alarm registers
   RTC_Write (ALARM0, alarm_interval_first.U8[b0]);   // LSB
   RTC_Write (ALARM1, alarm_interval_first.U8[b1]);
   RTC_Write (ALARM2, alarm_interval_first.U8[b2]);
   RTC_Write (ALARM3, alarm_interval_first.U8[b3]);   // MSB

   // Enable the smaRTClock timer and alarm with auto-reset
   RTC_Write (RTC0CN, 0xDC);
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色偷偷88欧美精品久久久| 久久久国产午夜精品| 欧美白人最猛性xxxxx69交| 欧美激情在线一区二区三区| 亚洲国产精品欧美一二99| 国产一区三区三区| 欧美色综合网站| 国产精品区一区二区三区| 蜜桃视频在线一区| 欧美性色综合网| 综合精品久久久| 国产主播一区二区三区| 欧美男生操女生| 一区二区三区四区国产精品| 国产91富婆露脸刺激对白| 在线成人免费视频| 亚洲成人精品影院| 色一区在线观看| 亚洲天堂中文字幕| 成人av在线一区二区三区| 久久你懂得1024| 精品一区二区三区久久久| 777午夜精品视频在线播放| 亚洲激情av在线| 色综合久久久久综合体桃花网| 日韩女同互慰一区二区| 日本视频免费一区| 91精品欧美一区二区三区综合在 | 亚洲高清久久久| 99视频超级精品| 中文字幕欧美国产| 国产一区二区美女| 久久久三级国产网站| 久久精品免费观看| 91精品久久久久久久久99蜜臂| 亚洲美女免费在线| 欧美怡红院视频| 一区二区三区在线播| 91色在线porny| 亚洲天堂久久久久久久| 色系网站成人免费| 亚洲成人免费在线观看| 欧美日韩你懂的| 免费成人在线网站| 日韩免费高清av| 激情国产一区二区| 国产欧美一区二区精品秋霞影院| 免费美女久久99| 久久先锋影音av| 成人一二三区视频| 国产精品久久久久婷婷二区次| 久久av老司机精品网站导航| 久久香蕉国产线看观看99| 韩国精品久久久| 国产精品视频第一区| 色综合色综合色综合色综合色综合 | 欧美网站大全在线观看| 亚洲五码中文字幕| 亚洲精品一区二区三区在线观看| 国产成人综合在线播放| 亚洲精品日韩一| 日韩美女天天操| gogo大胆日本视频一区| 亚洲综合久久久久| 26uuu精品一区二区| 一本久道久久综合中文字幕 | 1区2区3区国产精品| 欧美日韩精品一区二区天天拍小说| 日本欧美一区二区| 久久久精品免费观看| 色婷婷一区二区三区四区| 蜜乳av一区二区| 亚洲欧美日韩人成在线播放| 日韩午夜av电影| 色哟哟日韩精品| 国产精品香蕉一区二区三区| 一区二区三区不卡视频在线观看| 精品免费视频一区二区| 色噜噜狠狠一区二区三区果冻| 寂寞少妇一区二区三区| 亚洲一区在线看| 国产亚洲精品bt天堂精选| 欧美色图片你懂的| 成人免费观看av| 免费日韩伦理电影| 亚洲精品视频自拍| 日韩亚洲国产中文字幕欧美| 国产成人在线电影| 麻豆成人久久精品二区三区红 | 日韩精品成人一区二区三区| 国产精品护士白丝一区av| 欧美一级一区二区| 在线观看日韩精品| 99vv1com这只有精品| 国产精品综合在线视频| 免费看日韩a级影片| 亚洲第一福利视频在线| 亚洲少妇屁股交4| 国产欧美在线观看一区| 精品乱人伦小说| 91精品综合久久久久久| 欧美亚洲国产一区二区三区| 97久久精品人人做人人爽50路| 国产成人精品亚洲日本在线桃色| 韩国毛片一区二区三区| 久久99精品久久久久| 免费高清在线视频一区·| 秋霞影院一区二区| 日韩av中文字幕一区二区三区| 一区二区三区视频在线看| 悠悠色在线精品| 亚洲免费在线看| 亚洲精品欧美激情| 亚洲综合色噜噜狠狠| 亚洲一区二区欧美| 亚洲成人av一区二区三区| 亚洲国产精品嫩草影院| 亚洲成av人片一区二区| 日韩激情视频在线观看| 男人的天堂亚洲一区| 青青草伊人久久| 精品一区二区三区在线观看| 国产一区美女在线| 成人一区二区三区中文字幕| 波多野结衣在线一区| 99久久精品国产一区二区三区| 91免费精品国自产拍在线不卡| 一本在线高清不卡dvd| 欧美性猛交xxxxxxxx| 欧美一区二区视频在线观看2022| 欧美一区二区三区播放老司机| 欧美成人乱码一区二区三区| 国产日韩综合av| 怡红院av一区二区三区| 视频一区国产视频| 国产一区二区三区四| 91在线porny国产在线看| 欧美色倩网站大全免费| 日韩久久久精品| 亚洲天堂福利av| 天堂蜜桃91精品| 国产一区二区在线看| av高清不卡在线| 欧美精品丝袜中出| 国产人妖乱国产精品人妖| 亚洲欧美aⅴ...| 久久国产剧场电影| 色综合色狠狠综合色| 欧美一区三区二区| 国产精品色一区二区三区| 亚洲二区在线视频| 国产91综合网| 欧美一区二区精品在线| 国产精品久久二区二区| 日韩影院免费视频| jizzjizzjizz欧美| 欧美成人一区二区三区| 亚洲日本va在线观看| 久久国产精品第一页| 色又黄又爽网站www久久| 精品国产1区二区| 亚洲中国最大av网站| 国产盗摄一区二区三区| 91麻豆精品国产91久久久久久| 国产精品毛片大码女人| 欧美aaa在线| 在线看日韩精品电影| 欧美国产精品一区| 麻豆精品视频在线观看| 色综合久久久久综合| 久久久久久久久久看片| 日本免费新一区视频| 色欧美片视频在线观看在线视频| 久久久精品欧美丰满| 久久精品国产一区二区三区免费看 | 欧美一区二区免费| 亚洲综合一区二区| 成人av电影观看| 欧美精品一区二区蜜臀亚洲| 亚洲福利一区二区| 一本一道波多野结衣一区二区| 久久精子c满五个校花| 精油按摩中文字幕久久| 欧美福利一区二区| 一区二区理论电影在线观看| 成人网页在线观看| 久久久久久久久久久久久女国产乱 | 在线播放国产精品二区一二区四区| 亚洲国产精品av| 国产一区二区三区免费观看| 欧美肥大bbwbbw高潮| 亚洲一区二区三区在线看| 波多野结衣中文字幕一区二区三区| 久久久国产综合精品女国产盗摄| 久久成人免费网站| 精品久久久久久无| 久久精品99国产国产精| 欧美一区二区三区思思人| 午夜激情一区二区| 91.com视频|