📄 main.c
字号:
/***************************************************************
Date: 2007 03 09
Description: IM-Robot main function
***************************************************************/
#include "IM_Robot.h"
#include "math.h"
UInt16 RxData = 0;
UInt16 i=0, j=0;
int main()
{
Disable_IRQ();
System_Init();
INT_IRQ();
Set_UART();
for (i=0;i<128;i++)
{
RS232Tx(i);
}
while(1)
{
}
return 0;
}
void System_Init()
{
*P_Clock_Ctrl = 0x8400; // Enable PLL, System clk is PLL clk,
// 32768Hz weak mode, IOB0 32768Hz output disable,
// IOA and IOB wake up function disable, SYSCLK is PLL(48MHz)
*P_LVR_Ctrl = 0x0002; // Disable Low Voltage Reset function
/************** GPIO setting **************/
// IOA
*P_IOA_Data = 0x0000; // Set IOA[15:0] as output 0x0000
*P_IOA_Attrib = 0xFFFF; // IOA[1:0] control motor rotate direction (output)
*P_IOA_Dir = 0xFFFF;
// IOD
IOD_Data_Reg->B.bit6 = 1; // Set IOD[6] as input pull-high to enable UART
IOD_Attrib_Reg->B.bit6 = 0;
IOD_Dir_Reg->B.bit6 = 0;
}
void Set_UART()
{
UARTIrDA_Ctrl_Reg->W = 0x9060; // FIFO disable, Rx INT enable, UART enable
UARTIrDA_BaudRate_Reg->W = 0x5; // No delay between transmitting, BaudRate is 115200bps
}
void RS232Tx(UInt16 TxData)
{
UARTIrDA_Data_Reg->W = TxData;
for (j=0;j<35;j++);
}
void IRQ3(void) __attribute__ ((ISR));
void IRQ3(void)
{
if (UARTIrDA_Status_Reg->B.RXIF == 1)
{
RxData = UARTIrDA_Data_Reg->W;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -