• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ readEEPROM函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中readEEPROM函数的典型用法代码示例。如果您正苦于以下问题:C++ readEEPROM函数的具体用法?C++ readEEPROM怎么用?C++ readEEPROM使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了readEEPROM函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: read_app_register

////////////////////////////////////////////////////////////////////////////////
// read_app_register
//
void read_app_register( uint08_t reg )
{
	SendMsg.priority = VSCP_PRIORITY_MEDIUM;
	SendMsg.vscp_class = VSCP_CLASS1_PROTOCOL;
	SendMsg.vscp_type = VSCP_TYPE_PROTOCOL_RW_RESPONSE;
	SendMsg.length =  2;
	SendMsg.data[0] = reg;
	SendMsg.data[1] = 0x00; // default read

	switch ( reg ) {
		// Zone
		case 0x21:
			SendMsg.data[1] = readEEPROM( REG_APP_ZONE );
			break;
		// SubZone
		case 0x22:
			SendMsg.data[1] = readEEPROM( REG_DOOR_SUBZONE );
			break;		

		default:
			SendMsg.data[1] = 0;	
			break;	
	}
	// Send data
	VSCP_enqMsgTx( &SendMsg, FALSE);	
}
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:29,代码来源:VSCP_app.c


示例2: write_app_register

///////////////////////////////////////////////////////////////////////////////
// write_app_register
//
void write_app_register( uint08_t reg, uint08_t val )
{
	SendMsg.priority = VSCP_PRIORITY_MEDIUM;
	SendMsg.vscp_class = VSCP_CLASS1_PROTOCOL;
	SendMsg.vscp_type = VSCP_TYPE_PROTOCOL_RW_RESPONSE;
	SendMsg.length = 2;
	SendMsg.data[0] = reg;
	SendMsg.data[1] = ~val; // error return

	switch ( reg ) {
		// Zone
		case 0x23:
			writeEEPROM( REG_APP_ZONE, val);
			SendMsg.data[1] = readEEPROM( REG_APP_ZONE);
			break;
		// SubZone
		case 0x24:
			writeEEPROM( REG_DOOR_SUBZONE, val);
			SendMsg.data[1] = readEEPROM( REG_DOOR_SUBZONE);
			break;	

		default:
			SendMsg.data[1] = ~val; // error return	
			break;
	}
	// Send data
	VSCP_enqMsgTx( &SendMsg, FALSE);	
} 
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:31,代码来源:VSCP_app.c


示例3: flush

bool Persistence::load()
{
    //free any previous loaded data
    flush();

    //load variable count
    readEEPROM(_mainPosition, (byte *)&_count, sizeof(_count));

    //validate variable count
    if ( _count > 0 && _count < MAX_VARIABLES )
    {
        //load data size
        readEEPROM(_mainPosition + sizeof(_count), (byte *)&_size, sizeof(_size));

        //copy data
        if (_size > 0)
        {
            _properties = (Property *) malloc(_size);
            readEEPROM(_mainPosition + sizeof(_count) + sizeof(_size), (byte *)_properties, _size);
            fixPointers();
        }

        return true;
    }
    else
    {
        _count = 0;
        return false;
    }
}
开发者ID:jfis,项目名称:dmc3xl_timeline,代码行数:30,代码来源:Persistence.cpp


示例4: doActionCtrlLed

void doActionCtrlLed( unsigned char dmflags, unsigned char arg )
{
	unsigned char i;
	unsigned char val;
	uart_puts("action\n");	
	for ( i=0; i<8; i++ ) {
		
		// If the rely should not be handled just move on
		if ( !( arg & ( 1 << i ) ) ) continue;
		
		// Check if subzone should match and if so if it match
		if ( dmflags & VSCP_DM_FLAG_CHECK_SUBZONE ) {
			if ( vscp_imsg.data[ 2 ] != readEEPROM( VSCP_EEPROM_END + 
															REG_SWITCH0_SUBZONE + 
															i ) ) {
				continue;
			}
		}
			
		val = readEEPROM( VSCP_EEPROM_END + REG_SWITCH0_SUBZONE + i );
		
	
		PORTB ^= _BV(i);
									
//		// Should off event be sent?
//		if( val & RELAY_CONTROLBIT_ONEVENT ) {
//			SendInformationEvent( i, VSCP_CLASS1_INFORMATION, VSCP_TYPE_INFORMATION_ON );			
//		}
		
		// Should stop event be sent?
//		if( val & RELAY_CONTROLBIT_STARTEVENT ) {
//			SendInformationEvent( i, VSCP_CLASS1_INFORMATION, VSCP_TYPE_INFORMATION_START );
//		}
	}	
}
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:35,代码来源:vscp_actions.c


示例5: main

int main(void)
{
	tm gmt;
	WatchDogDisable();
	NutDelay(100);
	SysInitIO();
	SPIinit();
	LedInit();
	LcdLowLevelInit();
	Uart0DriverInit();
	Uart0DriverStart();
	LogInit();
	LogMsg_P(LOG_INFO, PSTR("-----------------------------------------------------------------------------------------------"));
	CardInit();
	X12Init();
	if (X12RtcGetClock(&gmt) == 0)
	{
		LogMsg_P(LOG_INFO, PSTR("RTC time [%02d:%02d:%02d]\n"), gmt.tm_hour, gmt.tm_min, gmt.tm_sec );
	}
	if (At45dbInit() == AT45DB041B)
	{
		
	}
	RcInit();
	KbInit();
	SysControlMainBeat(ON);             // enable 4.4 msecs hartbeat interrupt
	NutThreadSetPriority(1);
	NutTimerInit();
	sei();

	printf("\nreading EEPROM\n");
	NutSleep(1000);
	readEEPROM();
	printf("UTC: %d\n",IMCconfig.UTC);
	NutSleep(1000);

	IMCconfig.UTC++;	
	printf("na ophoging UTC: %d\n",IMCconfig.UTC);
	saveEEPROM();
	NutSleep(1000);
	readEEPROM();
	printf("na saving en reading UTC: %d\n",IMCconfig.UTC);

	printf("\nResetting EEPROM\n");
	NutSleep(1000);
	resetEEPROM();
	NutSleep(1000);
	readEEPROM();

	for (;;)
	{
		
	}

	return(0);      // never reached, but 'main()' returns a non-void, so.....
}
开发者ID:MaurodeLyon,项目名称:Embedded-Software-Ontwikkeling,代码行数:56,代码来源:main.c


示例6: writeEEPROM

void writeEEPROM(uint8_t b, uint8_t updateProfile)
{
    FLASH_Status status;
    uint32_t i;
    uint8_t chk = 0;
    const uint8_t *p;
    int tries = 0;

    // prepare checksum/version constants
    mcfg.version = EEPROM_CONF_VERSION;
    mcfg.size = sizeof(master_t);
    mcfg.magic_be = 0xBE;
    mcfg.magic_ef = 0xEF;
    mcfg.chk = 0;

    // when updateProfile = true, we copy contents of cfg to global configuration. when false, only profile number is updated, and then that profile is loaded on readEEPROM()
    if (updateProfile) {
        // copy current in-memory profile to stored configuration
        memcpy(&mcfg.profile[mcfg.current_profile], &cfg, sizeof(config_t));
    }

    // recalculate checksum before writing
    for (p = (const uint8_t *)&mcfg; p < ((const uint8_t *)&mcfg + sizeof(master_t)); p++)
        chk ^= *p;
    mcfg.chk = chk;

//taskENTER_CRITICAL();

    // write it
retry:
    FLASH_Unlock();
    FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);

    if (FLASH_ErasePage(FLASH_WRITE_ADDR) == FLASH_COMPLETE) {
        for (i = 0; i < sizeof(master_t); i += 4) {
            status = FLASH_ProgramWord(FLASH_WRITE_ADDR + i, *(uint32_t *) ((char *)&mcfg + i));
            if (status != FLASH_COMPLETE) {
                FLASH_Lock();
                tries++;
                if (tries < 3)
                    goto retry;
                else
                    break;
            }
        }
    }
    FLASH_Lock();

//taskEXIT_CRITICAL();

    // Flash write failed - just die now
    if (tries == 3 || !validEEPROM()) {
        failureMode(10);
    }

    // re-read written data
    readEEPROM();
    if (b)
        blinkLED(15, 20, 1);
}
开发者ID:kyuyoung,项目名称:SkyRover_Nano,代码行数:60,代码来源:config.c


示例7: writeParams

void writeParams(uint8_t b)
{
    FLASH_Status status;
    uint32_t i;
    uint8_t chk = 0;
    const uint8_t *p;

    cfg.version    = EEPROM_CONF_VERSION;
    cfg.size       = sizeof(config_t);
    cfg.magic_be   = 0xBE;
    cfg.magic_ef   = 0xEF;
    cfg.chk        = 0;
    for (p = (const uint8_t *)&cfg; p < ((const uint8_t *)&cfg + sizeof(config_t)); p++) chk ^= *p; // recalculate checksum before writing
    cfg.chk = chk;
    FLASH_Unlock();                                                                       // write it
    FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
  
    for (i = 0; i < FLASH_PAGES_FORCONFIG; i++)                                           // Erase the pages here
    {
        while (FLASH_ErasePage(FLASH_WRITE_ADDR + (i * FLASH_PAGE_SIZE)) != FLASH_COMPLETE);
    }

    for (i = 0; i < sizeof(config_t); i += 4)                                             // Write that config now.
    {
        status = FLASH_ProgramWord(FLASH_WRITE_ADDR + i, *(uint32_t *) ((char *) &cfg + i));
        if (status != FLASH_COMPLETE) break;                                              // TODO: fail
    }
    FLASH_Lock();
    readEEPROM();
    if (b) blinkLED(15, 20, 1);
}
开发者ID:slashphotos,项目名称:TestCode2,代码行数:31,代码来源:config.c


示例8: changeProfile

void changeProfile(uint8_t profileIndex)
{
    masterConfig.current_profile_index = profileIndex;
    writeEEPROM();
    readEEPROM();
    blinkLedAndSoundBeeper(2, 40, profileIndex + 1);
}
开发者ID:bennyh88,项目名称:cleanflight,代码行数:7,代码来源:config.c


示例9: writeParams

void writeParams(void)
{
    FLASH_Status status;
    uint32_t i;
    uint8_t chk = 0;
    const uint8_t *p;
    
    cfg.version = EEPROM_CONF_VERSION;
    cfg.size = sizeof(config_t);
    cfg.magic_be = 0xBE;
    cfg.magic_ef = 0xEF;
    cfg.chk = 0;
    // recalculate checksum before writing
    for (p = (const uint8_t *)&cfg; p < ((const uint8_t *)&cfg + sizeof(config_t)); ++p)
        chk ^= *p;
    cfg.chk = chk;
    
    // write it
    FLASH_Unlock();
    FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);

    if (FLASH_ErasePage(FLASH_WRITE_ADDR) == FLASH_COMPLETE) {
        for (i = 0; i < sizeof(config_t); i += 4) {
            status = FLASH_ProgramWord(FLASH_WRITE_ADDR + i, *(uint32_t *)((char *)&cfg + i));
            if (status != FLASH_COMPLETE)
                while(1);//break; // TODO: fail
        }
    }

    FLASH_Lock();

    readEEPROM();
}
开发者ID:Zero3nna,项目名称:Optima-PPM,代码行数:33,代码来源:config.c


示例10: changeProfile

void changeProfile(uint8_t profileIndex)
{
    masterConfig.current_profile_index = profileIndex;
    writeEEPROM();
    readEEPROM();
    beeperConfirmationBeeps(profileIndex + 1);
}
开发者ID:kc10kevin,项目名称:betaflight,代码行数:7,代码来源:config.c


示例11: main

void main(void) {
    byte evalue;
    initSquareWear();
    setModeOutput(pinC7);
    latC7 = 0;
    delayMilliseconds(250); // short delay for EEPROM to stablize
    evalue = readEEPROM(0x0);   // read EEPROM address 0
    switch(evalue) {
        case 0:
            writeEEPROM(0x0, 1);    // write next index to EEPROM address 0
            busyEEPROM();           // wait till write completes
            while(1) {
                latC7 = !latC7;
                delayMilliseconds(100);
            }
            break;
        case 1:
            writeEEPROM(0x0, 2);
            busyEEPROM();
            while(1) {
                latC7 = !latC7;
                delayMilliseconds(500);
            }
            break;
        default:
            writeEEPROM(0x0, 0);
            busyEEPROM();
            while(1) {
                latC7 = !latC7;
                delayMilliseconds(1000);
            }
            break;

    }
}
开发者ID:3dlogixbydesign,项目名称:squarewear,代码行数:35,代码来源:SquareWearDemo.c


示例12: readStrEEPROM

void readStrEEPROM(char addr, unsigned char length, char *str)
{
	unsigned char i;
	
	for(i=0;i<length;i++)
		str[i] = readEEPROM(addr+i);
}
开发者ID:PedroDiogo,项目名称:POV,代码行数:7,代码来源:eeprom.c


示例13: writeParams

void writeParams(uint8_t b) {
  global_conf.currentSet=0;
  conf.checksum = calculate_sum((uint8_t*)&conf, sizeof(conf));
  eeprom_write_block((const void*)&conf, (void*)(global_conf.currentSet * sizeof(conf) + sizeof(global_conf)), sizeof(conf));
  readEEPROM();
  if (b == 1) blinkLED(15,20,1);
}
开发者ID:NVSL,项目名称:Quadcopter-Class-Lab-06,代码行数:7,代码来源:EEPROM.cpp


示例14: delay

void MLX90621::initialise(int refrate) {
	refreshRate = refrate;
	Wire.begin(I2C_MASTER, 0, I2C_PINS_18_19, I2C_PULLUP_INT, I2C_RATE_100);
	delay(5);
	readEEPROM();
	writeTrimmingValue();
	setConfiguration();
}
开发者ID:robinvanemden,项目名称:MLX90621_Arduino_Processing,代码行数:8,代码来源:MLX90621.cpp


示例15: pinMode

//Initializers that should be called in the `setup()` function
//Initizalize the pin as output and the last value received 
void SensorFlare::DigitalOut::begin()
{
    pinMode(number, OUTPUT);
    Spark.function("digital",controlPin);
    //Initialize the output with the last receive value from SensorFlare    
    readEEPROM();
    digitalWrite(number,EEPROMData.outputData.digitalPin[number]);
  
}
开发者ID:LPFraile,项目名称:Sensorflare-SparkCore,代码行数:11,代码来源:sensorflare.cpp


示例16: getFCell

unsigned char getFCell(void){
	for(int i=0;i<1024;i++){
		if((i%3)==0){
			unsigned char a=readEEPROM(i);
			if(a==0){
				unsigned char b=readEEPROM((i+1));
				if(b==0){
					unsigned char c=readEEPROM((i+2));
					if(c==0){
						return i;
					}
				}
			}
		}
		i+=3;
	}
	return 0;
}
开发者ID:LamdaTK,项目名称:SecureDoorLocker,代码行数:18,代码来源:eeprom.c


示例17: readEEPROM

/*
* Read the settings from EEPROM
*/
void Network::readSettings() {
  int j = 4;
  j+= readEEPROM(&mac[0], j, sizeof(mac) * sizeof(uint8_t));
  j+= readEEPROM(&use_dhcp, j, sizeof(bool));
  j+= readEEPROM(&ip, j);
  j+= readEEPROM(&subnet, j);
  j+= readEEPROM(&gateway, j);
  j+= readEEPROM(&dns, j);
  j+= readEEPROM(&httpPort, j, sizeof(httpPort));
  j+= readEEPROM(&websocketPort, j, sizeof(websocketPort));  
}
开发者ID:AxisCommunications,项目名称:door-controller-test-tool,代码行数:14,代码来源:Network.cpp


示例18: vscp_getSegmentCRC

///////////////////////////////////////////////////////////////////////////////
//  getSegmentCRC
//
uint08_t vscp_getSegmentCRC( void )
{
	uint08_t aux;
	if (GetResource(RESOURCE_EE_ID) == E_OK)
	{
		aux = readEEPROM( VSCP_EEPROM_SEGMENT_CRC );
		ReleaseResource(RESOURCE_EE_ID);
		return aux;
	}
}
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:13,代码来源:VSCP_app.c


示例19: vscp_getControlByte

///////////////////////////////////////////////////////////////////////////////
//  getVSCPControlByte
//
uint08_t vscp_getControlByte( void )
{
	uint08_t aux;
	if (GetResource(RESOURCE_EE_ID) == E_OK)
	{
		aux = readEEPROM( VSCP_EEPROM_CONTROL );
		ReleaseResource(RESOURCE_EE_ID);
		return aux;
	}
}
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:13,代码来源:VSCP_app.c


示例20: vscp_getNickname

///////////////////////////////////////////////////////////////////////////////
//  getNickname
//
uint08_t vscp_getNickname( void )
{
	uint08_t aux;
	if (GetResource(RESOURCE_EE_ID) == E_OK)
	{
		aux = readEEPROM( VSCP_EEPROM_NICKNAME );
		ReleaseResource(RESOURCE_EE_ID);
		return aux;
	}
}
开发者ID:grodansparadis,项目名称:vscp_firmware,代码行数:13,代码来源:VSCP_app.c



注:本文中的readEEPROM函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ readEnd函数代码示例发布时间:2022-05-30
下一篇:
C++ readDocument函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap