timer0.c

来自「S3C4510(ARM7)开发板bootloader实现及板载硬件测试代码」· C语言 代码 · 共 66 行

C
66
字号
#include "timer0.h"

static void delay(int x)
{
	int i;
	while (x--)
	{
		for (i = 65536  ; i > 0; i--);		
	}	
}

void timer0_init(void)
{
		// unmask the timer0 interrupt ...........	
	INTMSK &= ~((1<<21) | (1<<10));  
	
	TDATA0 = 0x01effff0; 

	TMOD = 0;	

	// Clear pending interrupts
	INTPND = 0x00000000; 	

	// enable timer 0
   TMOD = 1;
}

void timer0_irq_handler( void )
{
  //just let led_3 to blink one time
	led(3, 1);
	delay( 10 );
	led(3, 0);
	delay( 10 );
	
	TDATA0 = 0x01effff0; 
	TMOD = 0;	
	INTPND |= TIMER0_MASK;
	TMOD = 1;
}

void timer0demo(void)
{
	int i;

	uart_get = -INT_MAX;
	timer0_init();
	uart_init(UART0_BASE, BAUD_19200);
	puts("Press 'Enter' to end demo\r\n");

	for (; ;)	
	{
		for (i = 0; i < 3; i++)
		{
			led(i, 1);
			delay( 20 );
			led(i, 0);
			if (uart_get == '\r' || uart_get == '\n')
				goto enddemo;
		}
	}
	
enddemo:	
		TMOD = 0;
		return;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?