資源簡介
該程序是基于STM8L系列單片機和TM1638鍵盤數碼管驅動芯片通過單片機內置RTC模塊完成的實時時鐘,該程序不僅有利于對RTC的學習和數碼管鍵盤驅動芯片的掌握!

代碼片段和文件信息
/**
??******************************************************************************
??*?@file????delay.c
??*?@author??Microcontroller?Division
??*?@version?V1.2.0
??*?@date????09/2010
??*?@brief???delay?functions
??******************************************************************************
??*?@copy
??*
??*?THE?PRESENT?FIRMWARE?WHICH?IS?FOR?GUIDANCE?ONLY?AIMS?AT?PROVIDING?CUSTOMERS
??*?WITH?CODING?INFORMATION?REGARDING?THEIR?PRODUCTS?IN?ORDER?FOR?THEM?TO?SAVE
??*?TIME.?AS?A?RESULT?STMICROELECTRONICS?SHALL?NOT?BE?HELD?LIABLE?FOR?ANY
??*?DIRECT?INDIRECT?OR?CONSEQUENTIAL?DAMAGES?WITH?RESPECT?TO?ANY?CLAIMS?ARISING
??*?FROM?THE?CONTENT?OF?SUCH?FIRMWARE?AND/OR?THE?USE?MADE?BY?CUSTOMERS?OF?THE
??*?CODING?INFORMATION?CONTAINED?HEREIN?IN?CONNECTION?WITH?THEIR?PRODUCTS.
??*
??*?©?COPYRIGHT?2010?STMicroelectronics
??*/
/*?Includes?------------------------------------------------------------------*/
#include?“stm8l15x_clk.h“
/**
??*?@brief??delay?for?some?time?in?ms?unit
??*?@caller?auto_test
??*?@param??n_ms?is?how?many?ms?of?time?to?delay
??*?@retval?None
??*/
void?delay_ms(u16?n_ms)
{
/*?Init?TIMER?4?*/
??CLK_PeripheralClockConfig(CLK_Peripheral_TIM4?ENABLE);
/*?Init?TIMER?4?prescaler:?/?(2^6)?=?/64?*/
??TIM4->PSCR?=?6;
/*?HSI?div?by?1?-->?Auto-Reload?value:?16M?/?64?=?1/4M?1/4M?/?1k?=?250*/
??TIM4->ARR?=?250;
??
/*?Counter?value:?2?to?compensate?the?initialization?of?TIMER*/
??TIM4->CNTR?=?2;
/*?clear?update?flag?*/
??TIM4->SR1?&=?~TIM4_SR1_UIF;
/*?Enable?Counter?*/
??TIM4->CR1?|=?TIM4_CR1_CEN;
??while(n_ms--)
??{
????while((TIM4->SR1?&?TIM4_SR1_UIF)?==?0)?;
????TIM4->SR1?&=?~TIM4_SR1_UIF;
??}
/*?Disable?Counter?*/
??TIM4->CR1?&=?~TIM4_CR1_CEN;
}
/**
??*?@brief??delay?for?some?time?in?10us?unit(partial?accurate)
??*?@caller?auto_test
??*?@param?n_10us?is?how?many?10us?of?time?to?delay
??*?@retval?None
??*/
void?delay_10us(u16?n_10us)
{
/*?Init?TIMER?4?*/
??CLK_PeripheralClockConfig(CLK_Peripheral_TIM4?ENABLE);
/*?prescaler:?/?(2^0)?=?/1?*/
??TIM4->PSCR?=?0;
/*?SYS_CLK_HSI_DIV1?Auto-Reload?value:?16M?/?1?=?16M?16M?/?100k?=?160?*/
??TIM4->ARR?=?160;
/*?Counter?value:?10?to?compensate?the?initialization?of?TIMER?*/
??TIM4->CNTR?=?10;
/*?clear?update?flag?*/
??TIM4->SR1?&=?~TIM4_SR1_UIF;
/*?Enable?Counter?*/
??TIM4->CR1?|=?TIM4_CR1_CEN;
??while(n_10us--)
??{
????while((TIM4->SR1?&?TIM4_SR1_UIF)?==?0)?;
????TIM4->SR1?&=?~TIM4_SR1_UIF;
??}
/*?Disable?Counter?*/
??TIM4->CR1?&=?~TIM4_CR1_CEN;
?CLK_PeripheralClockConfig(CLK_Peripheral_TIM4?DISABLE);
}
void?delay_nus(u8?n_us)?
{?
??u8?i;??
??for(i=0;i ??{
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
????asm(“nop“);
??}??
}
/*******************?(C)?COPYRIGHT?2010?STMicroelectronics?*****END?OF?FILE****/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????278528??2011-04-15?21:57??TM1638芯片+DS1302驅動共陰數碼管時鐘.doc
-----------?---------??----------?-----??----
???????????????278528????????????????????1
評論
共有 條評論