先提前祝大家元旦快乐。
之前用pic16f72芯片,然后用mplab的时候发现program 和data space不够,所以去物色大一些的芯片,目前锁定在pic18f45k20和22两款上。
把【16f72】【18f45k20后称20】【18f45k22后称22】进行比较,有一点不是很清楚,就是18f45多了eeprom space。
16f72的datasheet上没有eeprom space,mplab编译的时候系统也说没有。(这些是前提背景)
eeprom看名字,电可擦出可编程+只可读取储存.
看资料flash是广义上的eeprom。前者大块的擦出写入,后者可以单字节。(知乎上有人后者属于狭义上rom)
问题来了:programme type是flash,无论是20的64k还是22点32k其data eeprom只有1024和256bytes,和flash起来小太多了,那存在的意义是什么?
个人猜测推理:
16f72程序那些if while等程序(时序)放在program space里,然而其他变量或者常数都放ram里。
同理:20或者22if while等程序(时序)放在program space里,但是一些变量比如温度什么的还是放在ram里,但是不变的常数放在rom里?
举个例子:满档的电机可以运行10cm/s(个别因素比如打滑什么的不考虑先)那么变量时间t_run是否是存放在ram里,但是speed_ful存放在eeprom里。如何让小车满档运行的等条件,通过program space也存放在ram里还是说直接存放在program space里? |