📄 main.c
字号:
/********************************************
* 文件名:main.c *
* 实现功能:通过键盘完成对电机M1、M2的升降控制 *
* 作者:xxlxws *
* 日期:2006-08-06 *
* 版本号:1.0 *
********************************************/
#include "ht46r47.h"
#include "main.h"
#include "init.h"
#include "func.h"
#include "inter.h"
void main(void)
{
uint8 i,rd_data[10],addr;
bit ack;
uint8 wr_data[10] = {0x12,0x20,0x28,0xfe,0x16,0x45,0x98,0x73,0x55,0x01};
addr = 0x20;
Init();
while(1)
{
I2C_Write_N(10,addr,wr_data);
for(i=0; i<10; i++)
{
rd_data[i] = 0x00;
}
I2C_Read_N(10,addr,rd_data);
/*写*/
for(i=0; i<10; i++)
{
I2C_Start();
I2C_Write_Byte(0xa0); /*写控制字*/
ack = I2C_Ack(); /*ACK*/
if(!ack)
{
I2C_Write_Byte(addr+i); /*写地址*/
ack = I2C_Ack(); /*ACK*/
if(!ack)
{
I2C_Write_Byte(wr_data[i]); /*写数据*/
ack = I2C_Ack(); /*ACK*/
I2C_Stop();
}
}
} /*end of for loop*/
/*读*/
for(i=0; i<10; i++)
{
rd_data[i] = 0x00;
}
for(i=0; i<10; i++)
{
I2C_Start();
I2C_Write_Byte(0xa0); /*写控制字*/
ack = I2C_Ack(); /*ACK*/
if(!ack)
{
I2C_Write_Byte(addr+i); /*写地址*/
ack = I2C_Ack(); /*ACK*/
if(!ack)
{
I2C_Start();
I2C_Write_Byte(0xa1); /*写控制字读取当前地址数据*/
ack = I2C_Ack(); /*ACK*/
if(!ack)
{
rd_data[i] = I2C_Read_Byte();
I2C_Stop();
}
}
}
} /*end of for loop*/
} /*end of while(1)*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -