⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t1_timer.c

📁 intel 196nt 例程
💻 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 + -