Weight_Bed/USCI0_Init.c

58 lines
1.3 KiB
C
Raw Permalink Normal View History

2024-05-17 15:11:04 +08:00
#include "H/Function_Init.H"
#define USCI0_Mode SPI0
void Uart0_Init(uint Freq,unsigned long int baud);
void TWI0_Init(void);
void SPI0_Init(void);
bit Uart0SendFlag = 0; //Uart0<74><30><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ
bit Uart0ReceiveFlag = 0; //Uart0<74><30><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ
bit SPI0Flag = 0; //SPI0<49><30><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
bit TWI0Flag = 0; //TWI0<49>жϱ<D0B6>־λ
/*****************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>void USCI0_Test(void)
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>USCI0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
*****************************************************/
void USCI0_Test(void)
{
SPI0_Init();
while(1)
{
US0CON2 = 0xAA;
while(!SPI0Flag);
SPI0Flag = 0;
Delay(1000);
}
}
/*****************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>void SPI0_Init(void)
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>SPI0<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
*****************************************************/
void SPI0_Init(void)
{
OTCON |= 0X10; //ѡ<><D1A1>SPI0ģʽ
US0CON0 = 0x3F; //<2F><><EFBFBD><EFBFBD>SPI0Ϊ<30><CEAA><EFBFBD><EFBFBD><E8B1B8>SCK<43><4B><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD>SCK<43><4B><EFBFBD>ڵڶ<DAB5><DAB6>زɼ<D8B2><C9BC><EFBFBD><EFBFBD>ݣ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFsys/128
US0CON1 = 0x01; //MSB<53><42><EFBFBD>ȷ<EFBFBD><C8B7>ͣ<EFBFBD><38><CEBB><EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
US0CON0 |= 0x80; //<2F><><EFBFBD><EFBFBD>SPI0
IE1 |= 0x01;
EA = 1;
}
void Spi0_Int(void) interrupt 7 //SPI0<49>жϺ<D0B6><CFBA><EFBFBD>
{
if(US0CON1&0X08) //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>־<EFBFBD>ж<EFBFBD>
{
US0CON1 &= ~0X08;
}
if(US0CON1&0X80) //<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE>ж<EFBFBD>
{
US0CON1 &= ~0X80;
SPI0Flag = 1;
}
}