?? m8-twi通信.c
字號:
/**************************************************/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/delay.h>
#include "M8-IIC.h"
/**************************************************/
uchar iic_buf[7]={0x55,0x32,0x12,0x02,0x15,0x01,0x12}; //秒,分,時 星期,日,月,年
/**************************************************/
int main()
{
port_init();
uart();
IIC_init();
delayms(3000);
sendstr("write read 24c02 ");
while(1)
{
AT24C_WRITE(0x14,100);
delayms(100);
iic_buf[0]=AT24C_READ(0x14);
if(iic_buf[0]==100)
{
sendstr("write 24c02 ok!!!");
sendstr("read 24c02 ok!!!");
delayms(3000);
}
else
{
sendstr("write read 24c02 error!! ");
delayms(4000);
}
}
}
/***************************************************/
void port_init()
{
DDRD=0XFF;
PORTD=0xFF;
DDRD=(1<<1); //串口的輸出
}
/**************發送時間到串口***************************************/
void send_UART(uchar data)
{
while (!(UCSRA&(1<<UDRE)));
UDR=data;
while (!(UCSRA&(1<<UDRE)));
UDR=0x0a; //回車換行
while (!(UCSRA&(1<<UDRE)));
UDR=0x0d;
}
/******************************************************/
/******************************************/
void uart() //特別注意寫UCSRC時,要把最高位置1,否則寫不進去
{
UCSRB = 0x00; //先不使能發送接收
UCSRA = 0x00; //Bit1為1則倍速發送,這里不倍速
UCSRC = 0x86; //8位數據格式,異步方式,URSEL=1時,寫UCSRC寄存器
UBRRL = 25; //波特率:9600 Bps 8MHZ時鐘 51 1MHZ 6 2MHZ 12 4MHZ 25
UBRRH = 0x00; //誤差率:0.156%
UCSRB = 0x98; //使能發送接收,使能接收中斷
}
//-----------------------------------------------------------
//串口接收字節子程序
//-----------------------------------------------------------
unsigned char Getchar(void)
{
while(!(UCSRA& (1<<RXC)));
return UDR;
}
/******************************************/
void sendstr(uchar *s)
{
while (*s)
{
while (!(UCSRA&(1<<UDRE)));
UDR=*s;
s++;
}
while (!(UCSRA&(1<<UDRE)));
UDR=0x0a; //回車換行
while (!(UCSRA&(1<<UDRE)));
UDR=0x0d;
}
/******************************************************/
void delayms(uint k)
{
uint i,j;
for(i=0;i<k;i++)
{
for(j=0;j<100;j++)
{;}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -