欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
AVR單片機ATmega8/16內部晶振校準 源程序
[打印本頁]
作者:
凡塵癡兒FF
時間:
2021-2-3 14:14
標題:
AVR單片機ATmega8/16內部晶振校準 源程序
AVR單片機ATmega8/16內部晶振校準,本例程適用于內部8M 波特率38400。使用方法:
下載到單片機后打開串口(波特率38400)自動發送十六進制55,成功時串口收到OK指令。
單片機源程序如下:
#define F_CPU 4000000UL
#include <avr/io.h>
#include <string.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define INT8U unsigned char
#define INT16U unsigned int
INT8U flag=0,flag1=0;
INT8U DataBuf;
//初始化
void Init_USART()
{
UCSRB=_BV(RXEN)|_BV(TXEN)|_BV(RXCIE);
UCSRC=_BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0);
UBRRL=(F_CPU/38400/8-1)%256;
UBRRH=(F_CPU/38400/8-1)/256;
UCSRA|=_BV(U2X);
}
//發送一個字符
void PutChar(char c)
{
UDR=c;
while(!(UCSRA&_BV(UDRE)));
}
void tx(char *s) //發送一個字符串
{
INT8U i=0;
while(s[i]!='\0') PutChar(s[i++]);
}
void EepromWrite(INT16U uiAddress,INT8U ucData)
{
while(EECR&(1<<EEWE));
EEAR=uiAddress;
EEDR=ucData;
EECR|=(1<<EEMWE);
EECR|=(1<<EEWE);
}
/******************************************/
/******************************************/
INT8U EepromRead(INT16U uiAddress)
{
while(EECR&(1<<EEWE));
EEAR=uiAddress;
EECR|=(1<<EERE);
return (EEDR);
}
int main()
{
DDRC=0xFF;// 輸出低
PORTC=0x00;//氣閥,測試開關
DDRB=0x00;//下載輸入弱上拉
PORTB=0xFF;//傳感器
DDRD=0x02;// D0輸入上拉D1輸出高
PORTD=0xFF;//按鍵 檢測
Init_USART();
sei();
OSCCAL=0x00;
/**************** 晶振修正 **************************
DataBuf=EepromRead(0x0F);
PutChar(DataBuf);
if(DataBuf!=0xFF)
OSCCAL=DataBuf;
_delay_ms(500);
***************************************************/
while (1)
{
}
}
ISR (USART_RXC_vect)
{
static INT8U i=0;
INT8U a;
a=UDR;
if(a==0x55)
{
//PutChar(a);
i++;
if (i==50)
{
UCSRB&=0x7F;
EepromWrite(0x0F,OSCCAL);
tx("OK");
}
}
else
OSCCAL++;
}
/*串口接受中斷
ISR (USART_RXC_vect)
{
static INT8U i=0;
INT8U a;
a=UDR;
PutChar(a);
if(a=0x55)
{
PutChar('0');
i++;
if (i==50)
{
UCSRB&=0x7F;
EepromWrite(0x03,a);
tx("OK");
}
}
else
OSCCAL++;
}*/
復制代碼
作者:
axjuan
時間:
2022-6-3 13:58
這個是8m的嗎?
作者:
shuiquan3
時間:
2024-2-1 13:27
這個是8m的嗎?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1