📄 main.c.bak
字号:
#include <iom8v.h>
#include <macros.h>
extern void timer0_init(void);
extern void pwm1_init(void);
extern void uart_init(void);
extern void adc_init(void);
extern void int_init(void);
extern void TWI_init(void);
extern void puts(char *s);
extern void putchar(unsigned char c);
extern unsigned char i2c_read(unsigned char RomAddress);
extern void i2c_write(unsigned char Wdata,unsigned char RomAddress);
unsigned char ExtendRomAddr,ExtendRomVal;//定义片外EEPROM
unsigned char ExtendRomRW=0b00000000;
void main(void)
{
unsigned int intTemp;
unsigned char strTemp[5]={0},i;
unsigned char *pStr=strTemp;
OSCCAL=0x8e;//内部振荡器校正字,需要使用Ponygrog测试
//TCXO评估板上的TQFP上为0x8e,而DIP28的为0xa5
uart_init();//初始化USRART
puts("欢迎进入TCXO评估板调试程序");
timer0_init();//初始化定时器
pwm1_init();//初始化PWM输出
adc_init();//初始化ADC
int_init();//int0,int1中断使能
TWI_init();
SEI();//开放全局中断
OCR1A=655;//0.8v
OCR1B=2459;//3v
i2c_write(0x12,0x11);//写入外部EEPROM数据
puts("数据已经写入");
intTemp=0x0011;
intTemp=(int)i2c_read((unsigned char)intTemp);//读取外部EEPROM数据
pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
for(i=4;i!=0;i--)
{
*pStr=intTemp%10+48;
intTemp/=10;
pStr--;
}
pStr=strTemp;
puts(pStr);
puts("数据读完");
while(1)
{
if(ExtendRomRW&0b00000010)
{
intTemp=(int)i2c_read(ExtendRomAddr);//读取外部EEPROM数据
pStr+=3;//回到指针尾部,因为数据先计算出个位数(需将数据转换为BCD码输出)
for(i=4;i!=0;i--)
{
*pStr=intTemp%10+48;
intTemp/=10;
pStr--;
}
pStr=strTemp;
puts(pStr);
ExtendRomRW&=0b11111101;
}
else if(ExtendRomRW&0b00000100)
{
i2c_write(ExtendRomVal,ExtendRomAddr);//写入外部EEPROM数据
ExtendRomRW&=0b11111011;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -