首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程前的xc8随机数

编程前的xc8随机数
EN

Stack Overflow用户
提问于 2017-07-18 14:06:42
回答 3查看 579关注 0票数 4

我正在使用pic16f1823生成100个遥控器,我需要每个遥控器的唯一id,但随着时间的推移,它应该是恒定的,所以我认为在用mplab编译器编程之前生成一个随机数更好,然后编译这100个遥控器,我不想手动更改remote_id。

代码语言:javascript
复制
#include "mcc_generated_files/mcc.h" 
#define remote_id   33800
char col;
uint24_t data_out;
void Reset_state(void);
int Key(void);
int Key_prime(void);
void main(void)
{...

请帮我解决这个问题

EN

回答 3

Stack Overflow用户

发布于 2017-08-28 03:30:00

应该可以将SQTP模式与IPE一起使用,如此处所述。

http://microchipdeveloper.com/ipe:serial-quick-turn-programming-sqtp-settings

票数 2
EN

Stack Overflow用户

发布于 2018-09-20 20:00:52

您是否可以在生产中使用一个脚本来更改ihex文件,使您的序列号在EEPROM ( EE )中显示不同,因为大多数图片都有1k的内部EE用于数据存储?然后遥控器将从EE位置读取其唯一序列号。这将是一个‘`gawk’的简单工作,比如说...

票数 1
EN

Stack Overflow用户

发布于 2019-01-24 16:49:14

使用MPLAB IPE中的SQTP功能。您需要进入“高级模式”,并首先登录IPE。

在SQTP选项卡中,将其设置为将EEPROM中的值保存为'Raw Data',存储地址为0x00。按下'Generate‘,它会为你写一个sqtp文件。

在“操作”选项卡中,在选择.hex文件的字段下选择SQTP文件。

每次刷新新的mcu时,IPE将递增到SQTP文件中的下一个值,甚至会在两个会话之间进行跟踪。

您可以在代码中使用以下代码来检索数据:

代码语言:javascript
复制
unsigned char EEPROM_ReadByte(unsigned char eepromAddress)
{
    while(RD || WR);           // check the WR&RD bit to see if a RD/WR is in progress
    EEADR=eepromAddress;       // Write the address to EEADR.
    RD = 1;                    // Set the RD bit to trigger the eeprom read operation.
    return(EEDATA);            // Return the data read form eeprom.
}

调用EEPROM_ReadByte,传入0x00,它将从您的数据中返回一个字符。递增eepromAddress,然后返回第二个字符,依此类推。

请注意,您的数据将是相反的顺序,我不确定为什么,这可能是由于SQTP文件的编码方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45158728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档