📄 t1_timer.c
字号:
/*
** t1_timer.c
** Connect timer1 and timer2 together to make a
** 32 bit DOWN counter, and display some bits of this
** counter on the LEDs.
*/
#include <stdio.h>
extern void enable_led( void );
extern void set_led( unsigned char );
extern unsigned char get_t1control( void );
extern void set_t1control( unsigned char );
extern unsigned int get_timer1( void );
extern unsigned char get_t2control( void );
extern void set_t2control( unsigned char );
extern unsigned int get_timer2( void );
void main(void)
{
unsigned int i;
int j;
enable_led();
/*
** Timer control bits:
** timer1:
** 10000010
** ||||||||
** |||||+++-- 010= divide by 4
** |||||
** ||+++----- 000= take XTAL/4 clock,
** || use UD-bit for Up or Down
** |+-------- 0 = UD-bit: Down counting
** +--------- 1 = enable
** timer2:
** 10110000
** ||||||||
** |||||+++-- 000= divide by 1
** |||||
** ||+++----- 110= take timer 1 overflow as clock,
** || Up or Down same as timer 1
** |+-------- 0 = UD-bit: Down counting (ignored in this case)
** +--------- 1 = enable
*/
set_t2control( 0xB0 );
set_t1control( 0x82 );
/* Wait for timer 1 ms-bit set */
while ( ((i = get_timer1()) & 0x8000) )
;
/* Wait for timer 1 ms-bit clear */
while ( !((i = get_timer1()) & 0x8000) )
;
/* Wait for timer 1 ms-bit set */
while ( ((i = get_timer1()) & 0x8000) )
;
/* Show some bits of timer2 */
while ( ((i = get_timer2()) & 0x8000) )
set_led( i>>3 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -