对AVRGGC中flash的指针操作说明:
在flash数据声明:
const prog_uchar table[]={6,7,8,9};
在flash指针声明:
const prog_uchar *ptr; 或PGM_ptr;
*ptr=table; 或ptr=&table;
在SRAM声明变量
uchar tmp;
使用时应:
tmp=pgm_read_byte(&table);或 tmp=pgm_read_byte(ptr)
不能用:tmp=*ptr;否则数据是错误。
关键字:AVR GGC flash 指针操作
引用地址:
对AVRGGC中flash的指针操作说明
推荐阅读最新更新时间:2024-03-16 15:17
特斯拉的恐惧:来自基于E-GMP平台打造的苹果汽车的碾压
对于苹果汽车的消息,目前外界传闻非常多,不过现在一份更为详细的资料流出,大家不妨关注下。 按照知名分析师郭明錤(Mig Chi Kuo)的说法,苹果将与现代汽车合作开发首款苹果汽车模型,并提到苹果的第一款汽车底盘可能会基于现代的E-GMP电动汽车平台。 据悉,E-GMP平台于12月宣布,最多可支持双电机,五连杆后悬架,集成驱动桥,充满电后续航里程超过500公里,支持高速充电,可在18分钟内充电至80%。该平台的轴距能够根据车型的定位不同进行调整,使其可以满足轿车/SUV /CUV/高性能车等不同类型的研发需求,0-100km/h加速时间可小于3.5秒、最高时速可达260km/h。 换句话说就是,苹果的Apple
[汽车电子]
Flash数据不翼而飞了?
摘要:芯片贴板后跑不起来?Flash里面的数据在使用过程中莫名改变或不翼而飞?重新下载程序后又可以运行?这究竟是为什么呢? 1、用户代码对Flash的误操作不当引起程序丢失或被错误改写 例如,在有对Flash写入或擦除操作的代码中,如果用户误调用了写入或擦除函数或者由于程序跑飞而恰好执行了Flash擦除或写入函数,这自然会导致数据丢失或改变。针对以上情况,可以在程序中设置多个允许操作的变量,当执行写入或擦除操作时,对这些变量进行判断,只有条件全部满足时,才执行相应的操作。 在一些不需要进行擦除或写入操作的系统中,对存储区进行写保护或擦除保护设置,能有效的防止数据被意外修改。做到了写入或擦除的可控性,基本可以避免此种
[手机便携]
AVR单片机密码锁程序(原创)
这是一款用AVR单片机实现的密码锁,它分别由硬件16个矩阵键盘、数码管以及蜂鸣器组成的。系统正确的初始密码为0、1、2、3。当我们按下按键次数在4次以内,系统才判断密码对与否,当输入密码正确时,蜂鸣器报响起,即表示密码是正确的,当我们按下按键的次数超过4次,即使按下的密码正确,蜂鸣器也不响,还有按下密码顺序必须是0、1、2、3,如果按下0、2、1、3或者是其它的,都不能正常开蜂鸣器。如果按键次数超过4次了,密码就无法正常输入了,此时只要按下第16个按键时,就可以回到初始状态,即清除我们以前按键按下的次数,(因为密码输入时必须在4次以内完成的,超过了4次你怎么输,也进入密码判断模式)此时就可以重新输入正确的密码了。另外当按下按键时,可
[单片机]
基于AVR单片机的灭火机器人设计与实现
摘要:根据灭火机器人的竞赛规则,给出了灭火机器人的硬件结构设计方案和软件设计流程。所用的机器人处理器为AVR单片机,主要利用红外传感器、光敏传感器对环境进行检测,使机器人在场地中按照预定的方案寻找火源并扑灭。 关键词:灭火机器人;传感器;ATmega32 1 引言 机器人竞赛是近年来迅速开展起来的一种对抗活动,它涉及人工智能、机械、电子、传感器、精密机械等诸多领域。通过竞赛可以培养学生的创新意识、动手能力、团队写作能力等。其中灭火比赛是开展范围最广、影响最大的机器人竞赛项目之一。 比赛规则为模仿生活中消防员灭火,机器人从H点出发,在四个房间内寻找任意摆放的蜡烛,并且设法将其灭掉。比赛场地的墙壁高33cm,材质为木板,颜色为
[单片机]
AVR单片机按键处理与按键防抖动程序
AVR单片机按键处理与按键防抖动程序 #include mega48.h #include delay.h #include nokia3310.h unsigned char A,B; unsigned char n; bit step1, step2, step3,step4; //使用几个位变量记忆按键状态 / #include mega48.h #include delay.h #include nokia3310.h unsigned char A,B; unsigned char n; bit step1, step2, ste
[单片机]
stm32驱动NOR Flash 之MX25L51245G(64MB)
MX25L51245G 支持SPI的MODE0/MODE3,一般都选择mode3 #define FLASH_SECTOR_SIZE (4*1024) #define FLASH_PAGE_SIZE 256 引脚定义 /* * SPI1 * @SCK : PA5 * @MISO : PA6 * @MOSI : PA7 * * @CS : PA0 */ 读写接口 static u8 SPI_Write(u8 byte) { u32 timeout = 0xFFFF; while(!(SPI1- SR & SPI_I2S_FLAG_TXE)) { if(--timeout == 0) { printf(
[单片机]
基于AVR单片机的无线远程数据采集终端的研制与开发
一、引言 随着城市供水规模扩大,城市管网不断增大,厦门自来水公司原有遥测系统难以适应生产调度需求。要求有一套可靠、快速的调度遥测系统,综合国内RTU(Remote Terminal Unit 远程测控终端)的发展状况及公司的具体情况,厦门自来水公司独立研制开发了一套新的基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。系统的整体结构如图1,其中粗黑框部分为系统的核心MTU、RTU。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送
[单片机]
FLASH和EEPROM的区别
FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这
[单片机]