📄 scispi.c
字号:
#include "scispi.h"
void SPI_MasterInit(void)
{
/* 设置 MOSI和 SCK为输出,其他为输入 */
//DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK);
/* 使能SPI 主机模式,设置时钟速率为fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
void SPI_SEND(BYTE cData)
{
/* 启动数据传输 */
SPDR = cData;
/* 等待传输结束 */
while(!(SPSR & (1<<SPIF)))
;
}
#pragma interrupt_handler UART_RX_interrupt:12
/* interrupt handlers */
void UART_RX_interrupt( void )
{
//EvtProcedure(UDR);
}
void OpenComm (void)
{
//设置波特率19200
UBRRL = 0x0B; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
//设置帧格式: 8个数据位, 1个停止位
UCSRC = (1<<URSEL)|(3<<UCSZ0);
//接收器与发送器使能
//UCSRB = (1<<RXEN)|(1<<TXEN|1<<RXCIE);
UCSRB = (1<<RXEN)|(1<<TXEN);
}
void WriteComm (BYTE c)
{
while( !(UCSRA & (1<<UDRE)) );
UDR=c;
}
void WriteCommStr (char* str)
{
while(*str)
{
WriteComm(*str);
str++;
}
}
BYTE ReadComm ()
{
while( !(UCSRA & (1<<RXC)) );
return UDR;
}
BYTE ReadCommT(BYTE time)
{
timerCounter = 0;
while(timerCounter<time)
{
if(UCSRA & (1<<RXC))
return UDR;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -