atmega8 例程: EEPROM使用

 
/*****************************************************************
*  函数库说明:ATMEGA8 EEPROM使用
*  版本:      v1.00									       
*  修改:      庞辉    芜湖联大飞思卡尔工作室             									       
*  修改日期:  2011年08月08日 							   
*			   											   
*  说明:	   (1)直接使用EEPROM地址操作EEPROM
*              (2)先定义EEPROM区变量
*                                                          
*  版本更新:  详见readme.txt
*
*              20110805  V1.02                                            
*                                                                                          
******************************************************************
*注意: CE   PC0
*       RST  PC1
*       DC   PC2
*       SDIN PC3
*       SCLK PC4 
*
*       方法一的变量地址是自己确定的,而方法二的是编译器决定的 
******************************************************************/

#include "includes.h"

/***********************************************************
** 名    称:int main(void)
** 功    能:主函数
** 入口参数:无
** 出口参数:无
** 使用说明:无
**********************************************************/ 

//只能定义为全局变量
char ss __attribute__((section(".eeprom")));

int main(void)
{ 
    char temp1 = 0;
    char temp2 = 0;
    
    LCD_Init();

    //直接使用EEPROM地址操作EEPROM
    //等待EEPROM读写就绪
    eeprom_busy_wait();
    //将0x41写入到EEPROM的0地址处
    eeprom_write_byte(0, 0x41);
    //等待EEPROM读写就绪
    eeprom_busy_wait();
    //从eeprom的0地址处读取一字节赋给ram变量temp
    temp1 = eeprom_read_byte(0);

    //先定义EEPROM区变量
    //等待EEPROM读写就绪
    eeprom_busy_wait();
    //将0x41写入到EEPROM的0地址处
    eeprom_write_byte(&ss, 0x41);
    //等待EEPROM读写就绪
    eeprom_busy_wait();
    //从eeprom的0地址处读取一字节赋给ram变量temp
    temp2 = eeprom_read_byte(&ss);

    //LCD_Write_Chinese_String(10,0,12,4,Chinese_Font,0,5);
    //LCD_Write_Chinese_String(10,2,12,4,Chinese_Font,4,5);
    //LCD_Write_Chinese_String(18,4,12,3,Chinese_Font,8,5);
    LCD_Set_XY(0, 0);
    LCD_Write_Char(temp1);
    LCD_Set_XY(0, 1);
    LCD_Write_Char(temp2);
    while(1);
    
    return 0;
}

5110显示部分参考之前文章。

你可能感兴趣的:(工作,String,byte,编译器)