Freescale 9S12 系列单片机应用笔记(EETS4K模块) 1
时间:11-20
来源:互联网
点击:
- EEPROM
- *@paramaddress,thestartofthe4-bytesectortoaddress
- *@return
- *NVM_NO_ERR-EEPROMWriteSuccess
- *NVM_ODD_ACCESS_ERR-EEPROMWriteError,Addressnotonanevenaddressboundry
- *NVM_ACCESS_ERR-EEPROMWriteError,AccessViolation
- *NVM_PROTECTION_ERR-EEPROMWriteError,Attemptedtowriteaprotectedsector
- */
- charEEPROM_Erase_Sector(unsignedintaddress)
- {
- while(!ESTAT_CBEIF){/*WaitforEEPROMaccesscontrollertobecomeready*/
- ;
- }
- ESTAT=(ESTAT_ACCERR_MASK|ESTAT_PVIOL_MASK);/*Clearexistingerrorflags*/
- if(address&0x0001){
- return(NVM_ODD_ACCESS_ERR);/*AddressisNOTalignedonanevenboundry?*/
- }
- (*(unsignedint*)address)=0xFFFF;/*Writethedatatothespecifiedaddress*/
- ECMD=ECMD_CMDB6_MASK;/*StoreprogrammingcommandinFCMD*/
- ESTAT_CBEIF=1;/*Executethecommand*/
- if(ESTAT_ACCERR){/*Checkiftherehasbeenanaccesserror*/
- return(NVM_ACCESS_ERR);/*ReturnanAccessErrorcode*/
- }
- if(ESTAT_PVIOL){/*Checkiftherehasbeenaprotectionerror*/
- return(NVM_PROTECTION_ERR);/*ReturnaProtectionErrorcode*/
- }
- return(NVM_NO_ERR);/*ReturnNoError*/
- }
- charEEPROM_Erase_All(void)
- {
- while(!ESTAT_CBEIF){/*WaitforEEPROMaccesscontrollertobecomeready*/
- ;
- }
- ESTAT=(ESTAT_ACCERR_MASK|ESTAT_PVIOL_MASK);/*Clearexistingerrorflags*/
- (*(unsignedint*)0x0400)=0xFFFF;/*Writethedatatothespecifiedaddress*/
- ECMD=0x41;/*StoreprogrammingcommandinFCMD*/
- ESTAT_CBEIF=1;/*Executethecommand*/
- if(ESTAT_ACCERR){/*Checkiftherehasbeenanaccesserror*/
- return(NVM_ACCESS_ERR);/*ReturnanAccessErrorcode*/
- }
- if(ESTAT_PVIOL){/*Checkiftherehasbeenaprotectionerror*/
- return(NVM_PROTECTION_ERR);/*ReturnaProtectionErrorcode*/
- }
- return(NVM_NO_ERR);/*ReturnNoError*/
- }
- /**@briefThisfunctionreadsa16-bitwordfromthespecifiedaddressinEEPROM
- *@paramaddress,thestartofthe16-bitdatatoread
- *@returnThe16-bitwordstoredinlocationaddress
- */
- unsignedintEEPROM_Read_Word(unsignedintaddress)
- {
- unsignedintdata;
- while(!ESTAT_CBEIF){/*WaitforEEPROMaccesscontrollertobecomeready*/
- ;
- }
- data=(*(unsignedint*)address);/*Readthedataatlocationaddress*/
- return(data);/*Returnthedata*/
- }
- #include
/*commondefinesandmacros*/ - #include"derivative.h"/*derivative-specificdefinitions*/
- #include"sci.h"
- #include"eets4k.h"
- voidmain(void)
- {
- unsignedintdata;
- EEPROM_Init(16384);
- EnableInterrupts;
- EEPROM_Erase_All();
- EEPROM_Write_Word(0x400,1234);
- data=EEPROM_Read_Word(0x400);
- for(;;)
- {
- _FEED_COP();/*feedsthedog*/
- }/*loopforever*/
- }
Freescale9S12系列单片机EETS4K模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)