AVR单片机ATMEGA48的EEPROM操作例子
扫描二维码
随时随地手机看文章
/*****************************************************
CodeWizardAVR
http://www.avrdiy.com Panxiaoyi
快速PWM,也可以叫单斜率PWM
*****************************************************/
#include
unsigned char eeprom i=0; //把变量放保存在EEPROM上/赋值与否并不影响i的值
void main(void)
{
TCCR0A=0b10000011; //比较匹配时OC0A=0,计数到比较值时OC0A=1,TOP固定等于255
TCCR0B=0b00000001; //时钟=1分频
DDRD.6=1; //PD6必须设置为输出时OC0A输出的PWM才有效
DDRD.2=0;
PORTD.2=1; //PD2接按键输入/上拉电阻使能
while(1)
{
if(PIND.2==0) //如果按键按下/简单的按键防抖动
{
while(PIND.2==0); //等待按键松开
i+=10; //更新EEPROM的数据i/重新来电后数据不变
}
OCR0A = i ; //刷新比较值,PWM占空比随之改变
}
}