嵌入式__2018.08.12

本文探讨了嵌入式系统的未来发展,强调了实践的重要性,并推荐了STM32F103作为学习ARM技术的理想平台。文章还介绍了ARM体系结构的基础知识及寄存器的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 思维决定行动。
  2. 学到的东西要能够应用。不能是说上课只是来听个热闹。
  3. 嵌入式又被称为称为后PC时代,嵌入式以后的发展肯定是朝着嵌入式的方向发展。
  4. 多使用ARM芯片。推荐的ARM开发板为:STM32 F103(M3内核)。
  5. Arm的全称是:精简指令集机器。
  6. Arm有三层含义:商标、公司名称、arm体系。
  7. Arm在所有处理器中所占的份额为70%。
  8. 我们要信任老师。
  9. 在单片机中把寄存器抽象成了变量,例如:从P1引脚取值、给P1赋值。
  10. 用汇编语言编程时,要熟悉CPU中的每一个寄存器,要搞清楚寄存器的每一位所代表的含义。要把寄存器的每一位都对应上去。
void soc_1000ms_process() { static byte save_soc = 0; static byte SOC_35 = 0; static byte SOC_30 = 0; static byte SOC_25 = 0; static byte SOC_20 = 0; static byte SOC_15 = 0; static byte SOC_10 = 0; static byte debounce_100SOC = 60; static byte First_time_diff_soc = 0; //计算soc偏差第一次 差1倍 static byte Second_time_diff_soc = 0; //计算soc偏差第二次 差2倍 signed int soc_current = Sys_info.member.Module_Current; static byte temp_old; static byte temp_new; Sys_info.member.mini_cell_vol = Sys_info.member.Mini_Cell_Vol; Sys_info.member.mini_cell_tempera = Sys_info.member.Mini_Cell_Temp; // soc_current=soc_current*10; // if(soc_current>30000)soc_current=32000; //if(soc_current<-30000)soc_current=-30000; if(soc_current > 0) { if(RAM_Reg_Soc == 90) { if(SOC_35 == 0) { Soc_ChangeValue(0x005a >> 8, 0x005a); SOC_35 = 1; } } else if(RAM_Reg_Soc == 63) { if(SOC_25 == 0) { Soc_ChangeValue(0x003f >> 8, 0x003f); SOC_25 = 1; } } else if(RAM_Reg_Soc == 25) { if(SOC_10 == 0) { Soc_ChangeValue(0x0019 >> 8, 0x0019); SOC_10 = 1; } } else { SOC_35 = 0; SOC_30 = 0; SOC_25 = 0; SOC_20 = 0; SOC_15 = 0; SOC_10 = 0; } } if((Process_SOC_flag == 1) && (Sys_info.member.All_Lmu_Err_For_Soc_warning == 0)) { word temp; word temp1; if(soc_current == 0) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol, Sys_info.member.mini_cell_vol,((Sys_info.member.mini_cell_tempera - 400) * 10), 1); } else { if(soc_current < 500) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol, Sys_info.member.mini_cell_vol,((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } else if((soc_current >= 500) && (soc_current < 1000)) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol + 10, Sys_info.member.mini_cell_vol + 10,((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } else if((soc_current >= 1000) && (soc_current < 2000)) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol + 15, Sys_info.member.mini_cell_vol + 20,((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } else if((soc_current >= 2000) && (soc_current < 3000)) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol + 20, Sys_info.member.mini_cell_vol + 30, ((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } else if((soc_current >= 3000) && (soc_current <= 3500)) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol + 30, Sys_info.member.mini_cell_vol + 40,((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } else if(soc_current >= 4000) { Soc_UpdateSoc(Sys_info.member.mini_cell_vol + 40, Sys_info.member.mini_cell_vol + 40,((Sys_info.member.mini_cell_tempera - 400) * 10), soc_current); } } temp_old = RAM_Reg_Soc & 0xff; /* 乔高学 2018-08-07 */ RAM_Reg_Soc = Soc_GetSocValue(); if((RAM_Reg_Soc & 0xff) == 254) { Sys_info.member.module_soc = 250; DispSOC = 250; RAM_Disp_Soc = RAM_Reg_Soc & 0xff; } else { temp = RAM_Reg_Soc * 250; temp = temp / 255; Sys_info.member.module_soc = temp & 0xff; /* BEGIN: Added by 乔高学, 2018/8/12 */ temp_new = RAM_Reg_Soc & 0xff; } // if(Have_Save_Soc == 0) { Save_SOC_to_eeprom1(); } } }
最新发布
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值