📄 main.c
字号:
#include "option.h"
#include "def.h"
#include "44b.h"
#include "44blib.h"
#define BIT_SIO_START 1<<3
unsigned char flag_send=0;//the flag of want to send a byte data
unsigned char flag_recept=0;//the flag of want to recept a byte data
//SIO transmit or recept interrupt server program
void __irq SIO_INT(void)
{
if(flag_send)//send interrupt
{
flag_send=0;
Uart_Printf("Enter SIO_INT ISR program \n");
Uart_Printf("you send a data:rSIODAT=%d \n",rSIODAT);
rI_ISPC=BIT_SIO;//clear the INTPND flag of SIO
}
if(flag_recept)//recept interrupt
{
flag_recept=0;
Uart_Printf("Enter SIO_INT ISR program \n");
Uart_Printf("you recept a data:rSIODAT=%d \n",rSIODAT);
rI_ISPC=BIT_SIO;//clear the INTPND flag of SIO
}
}
void SIO_Init(void)
{
rPDATF=0x1ff; //All Is High
rPCONF=0x1B6C00; //Configure to SIO function mode
rPUPF=0x000; // All SIO pin pull up
rSIOCON=0x31;//00110001, Internal clock, MSB, transmit/recept, up edge recept, SIO interrupt mode
rSIODAT=0X00;
rSBRDR=59; //Baud=500KHz,MCLK=60MHz, Baud=MCLK/2/(SBRDR+1)
rIVTCNT=0;
rDCNTZ=0;
rINTCON=0X05; //Enable IRQ
rINTMOD=0X00;//INT mode is IRQ
rINTMSK=~(BIT_SIO|BIT_GLOBAL);//Enable SIO_INT
rI_ISPC|=BIT_SIO;//Clear the flag of SIO_INTPND
pISR_SIO=(U32)SIO_INT;//the first address of SIO_INT is assigned to pISR_SIO
}
void Main(void)
{
rSYSCFG=CACHECFG; // Using 8KB Cache//
Port_Init();
SIO_Init();
Uart_Init(0,57600);//initalize UART0,baud=57600
Delay(10);
Uart_Select(0); //Select UART0
Uart_Printf("Enter Main program \n");
while(1)
{
Led_Display(0x0);
Delay(2000);
rSIODAT=99;
flag_send=1;
rSIOCON|=BIT_SIO_START;
Led_Display(0x7);
Delay(2000);
flag_recept=1;
rSIOCON|=BIT_SIO_START;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -