main.c

来自「s3c2440芯片嵌入linux(2.6内核)系统后的LED控制程序。通过它可以」· C语言 代码 · 共 273 行 · 第 1/2 页

C
273
字号
#define	GPBCON		(*(volatile unsigned long *)0x56000010)
#define	GPBDAT		(*(volatile unsigned long *)0x56000014)
#define rGPHCON    (*(volatile unsigned *)0x56000070)	//Port H control
#define rGPHDAT    (*(volatile unsigned *)0x56000074)	//Port H data
#define rGPHUP     (*(volatile unsigned *)0x56000078)	//Pull-up control H

#define rUTXH0 		(*(volatile unsigned char *)0x50000020)	//UART 0 Transmission Hold
#define rURXH0 		(*(volatile unsigned char *)0x50000024)	//UART 0 Receive buffer

#define rULCON0     (*(volatile unsigned *)0x50000000)	//UART 0 Line control
#define rUCON0      (*(volatile unsigned *)0x50000004)	//UART 0 Control
#define rUFCON0     (*(volatile unsigned *)0x50000008)	//UART 0 FIFO control
#define rUMCON0     (*(volatile unsigned *)0x5000000c)	//UART 0 Modem control
#define rUTRSTAT0   (*(volatile unsigned *)0x50000010)	//UART 0 Tx/Rx status
#define rUERSTAT0   (*(volatile unsigned *)0x50000014)	//UART 0 Rx error status
#define rUFSTAT0    (*(volatile unsigned *)0x50000018)	//UART 0 FIFO status
#define rUMSTAT0    (*(volatile unsigned *)0x5000001c)	//UART 0 Modem status
#define rUBRDIV0    (*(volatile unsigned *)0x50000028)	//UART 0 Baud rate divisor

#define LED_SPARK_TIME_DELAY 400000
#define LED_MSK		0x1E0
#define	LED1		0x20
#define	LED2		0x40
#define	LED3		0x80
#define	LED4		0x100

/* LED: PB5678 low light	*/
// 01 01010100 00000000

void idle(void);

void uartini(void)
{
	rGPHCON = 0xaa;
    rGPHUP  = 0x0f;
    rUFCON0 = 0x0;
    rUMCON0 = 0x0;
    rULCON0 = 0x3;   //Line control register : Normal,No parity,1 stop,8 bits
    rUCON0  = 0x05;   // Control register
    rUBRDIV0=( (int)(304000000/6/16./115200+0.5) -1 ); 
}

void uartSendByte(char data)
{
	if(data=='\n')
        {
            while(!(rUTRSTAT0 & 0x2));
           // Delay(1);                 //because the slow response of hyper_terminal 
            rUTXH0 = '\r';
        }
        while(!(rUTRSTAT0 & 0x2));   //Wait until THR is empty.
      //  Delay(1);
        rUTXH0 = data;
}

void uartSendString(char *pt)
{
    while(*pt)
        uartSendByte(*pt++);
}

char uartGetChar(void)
{
	while(!(rUTRSTAT0 & 0x1)); //Receive data ready
	return rURXH0;
}
    

int Main()
{
	GPBCON = 0x15400;
	GPBDAT |= LED_MSK;
	idle();
	uartini();
	GPBDAT &= ~LED_MSK;
	idle();
	GPBDAT |= LED_MSK;
	idle();
	uartSendString("测试代码启动!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");
	uartSendString("为了凑够4k以上,需要多次打印这句话!\n");

⌨️ 快捷键说明

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