⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeprom.c

📁 用avr 操作eeprom的一个实例程序
💻 C
字号:
#include "eeprom.h"
#include <util/delay.h> 

//#include "funciton.h"

//宏定义 

//extern volatile unsigned int A;
//const char eep_buf[] __attribute__((section (".eeprom")))  ="南北线";
//定义 
//const unsigned int EEMEM AkValArray[4] = {10584, 5440, 10584, 5440};  
//const __flash__ unsigned int  AdcAkValArray[6]={0x4921,0x6152,0x1423,0x1640,0x1714,0x3192}; 

const EEMEM unsigned int AdcAkValArray[6]={0x4921,0x6152,0x1423,0x1640,0x1714,0x3192}; 

volatile unsigned char g_led_status;


/*********************************************************************************************************
* 函数名:delayms( )
* 函数功能:设定延迟时间,如果n=1,即延迟1ms
* 创建日期:2006-11-14
* 创建人:GUDONGYUAN
* 输入:n --延迟的时间,单位为ms
* 返回:无
* 修改日期:2006-12-3
* 修改人:GUDONGYUAN
* 修改说明:增加了一个延迟微妙级的函数,更改函数名字,以便于区别
* 备注:在-s级优化时,for循环 使用示波器测得,_delay_ms(1)实际为2ms
**********************************************************************************************************/
void delayms(unsigned int ms)
{
   unsigned int i; 
    for(i=0;i<ms;i++) _delay_ms(1); 

}


/********************************************************************************************************
* 函数名:speaker()
* 函数功能:控制蜂鸣器蜂鸣声,以及鸣叫时间。 
* 创建日期:2006-11-14
* 创建人:GUDONGYUAN
* 输入:鸣叫持续时间 n   总时间:1ms*n
* 返回:无
* 修改日期:2007-2-6
* 修改人:
* 修改说明:修改清零方法,PORTG&=~(1<<PG0) 
* 备注:
*********************************************************************************************************/
void speaker(unsigned int n)
{
  PORTG|=(1<<PG0);
  DDRG|=(1<<DDG0);  //33PIN(PG0)  初始为输出,PG0置1  SPEAKER START
  delayms(n);
  PORTG&=~(1<<PG0);  //SPEAKER STOP   PG0=0;
 
}



int main(void) 
{
 
 //g_led_status=20;

// init_test();

//unsigned int  Ad;
//                 Ad=AdcAkValArray[0] ;
//const char eep_buf[]  __attribute__ ((section (".eeprom")))  ="南北线"; 
//const char bar1[] ={0,0,0,1,2,2,3}; 

/*
 unsigned char i;
//读出 
  for (i = 0; i < 4; i ++) { 
    AkVal[i] = eeprom_read_word(&AkValArray[i]); 
  } 


//写入 
  for (i = 0; i < 4; i ++) { 
    eeprom_write_word((unsigned int *)&AkValArray[i], AkVal[i]); 
  } 
*/
 while(1){
 
 speaker(500);
 delayms(1000);
 
 
 }



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -