发 帖  
原厂入驻New
[问答] 在PIC16F15313中设置PPS,外部中断和PWM的问题
129 PWM adc
分享
大家好,我一直在试着做一个PWM/模式控制器,用于一个电池供电的坏闪光灯,我使用了PIC16F15313和XC8编译器……问题是这是我第一个使用PIC微型计算机的项目,我是一个完全新手,在闪光灯箱里空间有限,我想操作E微作为尽可能小的权力。我的微输入是:1。亮度设置锅输入- ADC输入-2。模式设置开关输入- ADC输入-3。低电池睡眠输入-数字输入-4。MCLR引脚是主清除功能,我的输出从微是:1。PWM高控制输出-PWM3输出-2。PWM Low控制输出- PWM4输出,这是我的伪代码代码:1。检查模式设置开关输入:A)如果开关值低于或等于0.25v或ADc值256;然后:1.低功率模式被接合(睡眠模式)2.所有输出被设置为低B)如果开关值高于或等于0.75v或ADc值786;然后:1.读取亮度设置Pot输入并将值分配给变量ADCB 2。变量ADCB的值驱动PWM33的占空比。如果开关值在0.75v和0.25之间或ADc值786和256之间,PWM3在引脚RA2C上输出;然后:1.读取亮度设置Pot输入并将其值分配给可变ADCB 2.可变ADCB的值驱动PWM43的占空比.PWM4在引脚RA4EXint)低电池上输出;然后:模式开关被重载,模式被终止,直到电池被充电或外部电源被接通;连接1。低功耗模式(睡眠模式)2.所有输出设置为低,这是我的主要。
0
2020-4-6 11:51:52   评论 分享淘帖 邀请回答

相关问题

19个回答
(1)您的代码标签不工作,因为您省略了/代码标签(2),您使用MCC吗?所有初始化代码都是隐藏的,没有显示源代码的[3]XC8是一个“C89”兼容编译器,这意味着您不能在代码块的中间创建变量,它必须位于块的开头。这是C99增强。D不退出。在所有要继续执行的代码周围放置一段时间(1)循环。
2020-4-6 12:00:39 评论

举报

您的函数只将RA2/RA3设置为零,从不设置为零(顺便说一下,您应该在编写时使用LATAbits.LATA2而不是PORTAbits.RA2),所以无论发生什么事情,都应该始终将它们保持在低位。很难说您是否配置了某些功能来做这件事。使用相应的LF部件(PC16LF15313)您将获得更小的功耗。
2020-4-6 12:15:32 评论

举报

对不起,我没有正确地复制代码…这是其他文件:这是CONFIG.H:这是中断。h:这是PPSYCONFIG.H:
2020-4-6 12:32:59 评论

举报

我在使用LF部分,需要额外的代码吗?我还能唤醒软件中的微控制器吗?我将在代码中修复PORTAbits……我不使用MCC,我将修复代码:并且中断没有停止与我一起工作,我真的不知道如何设置PPS,我在数据表中查看了表15-1页186,我真的迷路了。
2020-4-6 12:39:39 评论

举报

嗨,你用MCC来生成初始化代码吗?如果不是,我建议你这么做。它对于最新的PIC16F1xxx产品尤其有用,这些产品具有大量的外围设备,因此需要初始化许多寄存器以获得所需的功能。
2020-4-6 12:46:51 评论

举报

我建议你先从简单的事情开始。先做一个闪烁的LED,然后,一旦它工作,你就添加其他东西——一次一个。
2020-4-6 12:57:16 评论

举报

这里漏掉了一个“B”
2020-4-6 13:14:50 评论

举报

谢谢,我马上就改正。我建议你先从简单的事情开始。首先制作一个闪烁的LED,然后,一旦它工作,你添加其他东西-一次一个。我做到了,这里是闪烁灯的代码:m a in.c:config.h:我根本不使用MCC,而且我是它的一个完全新手:你说得对,PIC16F15323有很多外围设备,甚至更多。寄存器初始化…
2020-4-6 13:23:28 评论

举报

这是修改后的main.c文件:和config.h文件:ADC看起来不错,我将测试它,并将结果通知您……
2020-4-6 13:30:13 评论

举报

在使工作正常之前,摆脱那些睡眠指令。您仍然允许您的主函数退出。不应该将代码放入.h文件中,而应该只放入定义。config.h包含代码forvoid ADC_Init()和ADC_Read()。它们需要放入单独的C文件中,而不是H文件。把它们放在你的主C文件中直到你工作。
2020-4-6 13:45:24 评论

举报

修正了…但是,他们需要的中断和PPSDO如何?C不。H文件?
2020-4-6 14:05:05 评论

举报

代码在C文件中,定义在H文件中。如果你没有一本好的C书来解释这一点,请读一读:在C和C++中组织代码文件(忽略C++特定的位)
2020-4-6 14:24:40 评论

举报

我把所有非定义术语都移到main.c,包括中断ADC设置代码:但由于某些原因,ADC设置代码根本不起作用,编译器无法识别。这是config.h文件:
2020-4-6 14:36:35 评论

举报

“不承认”在什么意义上?此外,写入LATX而不是PORTX
2020-4-6 14:44:57 评论

举报

哦,我想我已经确定了吗?也许不是悲伤:这里是错误窗口:这是主要的.C文件:
2020-4-6 15:01:36 评论

举报

你是否包括XC.H文件?
2020-4-6 15:14:53 评论

举报

我还删除了主(…)的东西……如果你读了错误页面,就会有多条线,尽管Tayay.
2020-4-6 15:39:40 评论

举报

1。“中断设置部分”中的所有内容都需要在函数中或内部(2)中。不要从主()返回。确保你有一个无限循环,使主()从不退出。3。移动你的包含线到你的.c文件的顶部。4。不要在你的配置文件中包含.lc.h & gt;在配置文件中打开LVP关闭.H.6。我肯定还有更多…
2020-4-6 15:54:24 评论

举报

只有小组成员才能发言,加入小组>>

108个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表