⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scispi.c

📁 atmega8 prt8000 (nrf905)发送示例 iccavr,开发
💻 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 + -