打印
[PIC®/AVR®/dsPIC®产品]

求教求教关于PIC18LF4680单片机的问题

[复制链接]
1198|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hyxstrive|  楼主 | 2018-11-30 22:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
买了个二手的TOPPIC开发板,附带PIC18F4680单片机。捣鼓了几天了,连个I/O输出高电平和低电平都没实现。请教各位大佬是什么原因呀?帮帮忙!!

QQ图片20181130224855.png (420.24 KB )

QQ图片20181130224855.png

QQ图片20181130224933.png (25.17 KB )

QQ图片20181130224933.png
沙发
mzb2012| | 2018-12-1 19:33 | 只看该作者
愿意指导   qq:3114267019

使用特权

评论回复
板凳
Cristo| | 2018-12-7 09:25 | 只看该作者
bellstudio 发表于 2018-12-3 13:08
从你的配置看, OSC = RCIO,很可能芯片都没跑起来。保守的设置是用内部振荡器开始 ...

说的有道理

使用特权

评论回复
地板
hyxstrive|  楼主 | 2018-12-7 22:37 | 只看该作者
bellstudio 发表于 2018-12-3 13:08
从你的配置看, OSC = RCIO,很可能芯片都没跑起来。保守的设置是用内部振荡器开始 ...

确实是配置位没设置好,我后来对照着手册一条一条设置,后来跑起来了。
我刚开始振荡器是选择内部振荡的,可能是点错了选了RCIO

使用特权

评论回复
5
hyxstrive|  楼主 | 2018-12-7 22:49 | 只看该作者
bellstudio 发表于 2018-12-3 13:08
从你的配置看, OSC = RCIO,很可能芯片都没跑起来。保守的设置是用内部振荡器开始 ...

请问PIC18有没有支持MPLAB Code Configurator(MCC)的期间呀?
我现在在中断函数的语法上碰壁了,不知道高优先级中断和低优先级中断的函数名要怎么写。
我在MPLAB XC8 C编译器用户指南看了,用示例程序写下来还是不行

使用特权

评论回复
6
hyxstrive|  楼主 | 2018-12-7 22:59 | 只看该作者
经过反复试反复试,关于中断部分的语法终于通过编译真是不容易呀!
中断服务函数名void __interrupt() tc_int(void)就能通过编译,而void __interrupt tc_int(void)这里interrupt后面的()去掉就通不过编译。这是为什么呢?
我在XC8 C编译器的用户指南上看的也是没有括号的呀?

QQ图片20181207225813.jpg (46.08 KB )

QQ图片20181207225813.jpg

QQ图片20181207225719.png (27.21 KB )

QQ图片20181207225719.png

QQ图片20181207225726.png (17.91 KB )

QQ图片20181207225726.png

QQ图片20181207225734.png (15.59 KB )

QQ图片20181207225734.png

QQ图片20181207225738.png (39.4 KB )

QQ图片20181207225738.png

使用特权

评论回复
7
hyxstrive|  楼主 | 2018-12-14 20:43 | 只看该作者
bellstudio 发表于 2018-12-14 09:44
手册解决大部分问题。
另外,低优先级要这么描述
void __interrupt(low_priority) INTERRUPT_InterruptMana ...

嗯,我刚开始不知道哪些器件支持MPLAB 代码配置器,后来找到了一个文档,里面大致列举了一些支持的型号。用MCC生成的代码里是这样写的。
但是生成的代码里好多关于中断的函数呀,我看的有些懵。
void  INTERRUPT_Initialize (void)  //这个是中断初始化函数
void __interrupt() INTERRUPT_InterruptManagerHigh (void)  //这个是高优先级中断向量函数
void INT0_ISR(void)
void INT0_CallBack(void)
void INT0_SetInterruptHandler(void (* InterruptHandler)(void))
void INT0_DefaultInterruptHandler(void)
这里如果要INT0中断的话就有6个关于INT0的中断函数,我都不知道我要把我们要写的中断服务函数写在哪里还有各个函数都有什么用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

128

帖子

1

粉丝