涉及定时的,用得到定时器中断处理。主程序中设置启动标志,定时中断中根据标志控制输出、计算时间,时间到,清除标志和改变控制输出。中断处理本身也需要一个流程。刚入行,简单看下程序结构设计、流程图设计 |
ay247 发表于 2022-10-21 10:18 谢谢回复,目前正在一步一步去验证 |
ay247 发表于 2022-10-21 10:18 谢谢回复,电路图已经画好了。其实大家都帮助了很多。谢谢鼓励! |
尽量一个功能一个功能认真的去实现 |
电路图还是要自己认真去做,去完成的,没有人能帮助你,加油,小伙子 |
Y_G_G 发表于 2022-10-20 18:47 明白了,就是主程序循环执行吧?谢谢指导 |
yzwzfyz 发表于 2022-10-20 16:29 谢谢指导,也就是相当于要执行主程序循环这个意思是吧? |
你的代码肯定会有一个while(1),那就是一个闭环的死循环 那么,你对应的流程图也得有一个跑回去的流程才对呀 大概是: A,开机 B,相关初始化 C,按键检测 D,电压检测 E,温度检测 F,相关指示,数码管或者LED灯之类的 G,回到C 如果有中断,中断就是在这个循环之外执行的 |
楼主的图,当是功能模块图。 程序的流程:一定是一个封闭的环路。因为你的程序是一直运行的,它没有停止点。 也即任何一个方块都必须【有进有出】无输入只有一个:开机。 |
这是我画的程序流程图,各位大师帮忙看看思路对不对? |
Y_G_G 发表于 2022-10-19 17:58 好的,谢谢指导。我比较菜我来试试看。我不仿真也用不来那玩意 ![]() |
mcuhui 发表于 2022-10-19 15:20 这种功能本身就是没有什么很高深的难度,就是功能多而已 函数就像模块一样,一个一个的去写,一个一个的验证 大体功能就是那么几个: 端口初始化 指示灯 按键读取和处理 ADC,电压检测,温度检测,都是ADC完成的,像你这个功能对效率要求不高的,推荐ADC用中断来进行 每个功能要烧录进行验证,不要仿真,仿真不出来的 |
Y_G_G 发表于 2022-10-19 13:48 谢谢回复;我觉得这个太难了。尤其是要去实现这些功能。不过我会根据你的建议一个模块一个模块去写去试。 |
对谁都一样,不是高手不高手的 一步一步来,一个功能一个功能的去实现 比如,你先写LED指示灯的函数:"MCU正常开机且4颗LED跑马灯式依次全亮10秒后熄灭" 那就单单的写这个功能,其它都什么都不要,只写这个函数 单单这个功能应该能写吧,写完之后,放在程序中,烧录验证.别仿真,仿真那玩意没有用 然后就是其它功能,再一个一个的写,谁都是这个过程 你至少有个自己大的框架 |
runmuel 发表于 2022-10-19 10:28 谢谢回复及建议;这个用搭配电池包用的,如果电池电压过低电池包保护板就过放保护了。所以我理解只要B+电压在范围内就不会导致您说的这个问题。 |
yzwzfyz 发表于 2022-10-19 09:51 谢谢回复,感谢建议。那我来试着把程序流程图做出来然后在试试慢慢写程序。有问题在向您讨教。 |
xia20 发表于 2022-10-19 09:24 谢谢回复,就是框架不会搭建 |
runmuel 发表于 2022-10-19 08:26 谢谢回复,原理图已贴 |
zgrfox110 发表于 2022-10-19 07:14 感谢回复,那我学着慢慢搬运 ![]() |
qingshuiyu 发表于 2022-10-19 02:56 其实表达的就是锁死按键,括号里面有备注。可能描述不准确。 |
建议将ADC检测配置做出来,主程序扫描按键和读取温度和电压的检测时间(比如定时每秒检测一次温度和BV电压值并处理),LED显示和ADC定时检测使用定时器做。电路有问题,输入电压低时MCU检测电压值就不准了,输入电压过低LED显示也成问题,建议MCU增加一个备用电池,117供电和备用电池都使用二极管隔离 |
你会画逻辑流程吗?试着先画出来。不着急写程序,先跑通流程图。 我在编程时,程序很复杂:如汉显、数显、温湿度、无线通讯、有线通讯、USB、数控、红外遥控、时间钟、FALSH…… 都是列出所有的逻辑关系,表格。再画出程序流程图。 最后按流程图写程序,出问题时,按流程图审核,哪里错了,改进。 |
你程序起码也得有个框架出来别人才好帮你修正啊 |
硬件完成?靠这个文字描述是不行的,没电路图也没有程序别人帮不了你的 |
qingshuiyu 发表于 2022-10-19 02:56 编程就是数据的传送、搬运!首先你要知道如何搬运,其次是如何搬运,为什么搬运?就像做菜,案板就那一个,切菜也是拿来一样,切完了,拿走,再拿来一样菜! |
第1个表述有点问题,不是MCU不能正常开机而是面板不允许操作且输出故障提示。 |