完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
LGT8F328P 开发板arduino环境搭建:
1. 在官网上下载 Arduino硬件支持包 http://www.lgtic.com/downloads/ Arduino开发平台相关 解压,把压缩包中..Larduino_HSP_latestLarduino_HSP_v3.6chardware 目录下的LGT 目录复制到 Arduino hardware "D:Program Files (x86)Arduinohardware" 目录下。 2. 参考如下博客,把芯片和下载器连接好 https://blog.csdn.net/XIUYING_MO/article/details/103942255 3. 打开Arduino,选择开发板 4. 编程 4.1 中断程序 uint8_t IRPinSequence[] = {5, 4, 1, 0, 5, 4, 0 }; uint8_t IRPin[] = {C5, C4, C1, C0, B5, B4, B0 }; void iniIR() { uint8_t i; for (i = 0; i < IRPinCount; i++) { pinMode(IRPin, INPUT_PULLUP); } cli(); //关闭中断 PCICR |= (1 << PCIE0) | (1 << PCIE1); // 设置 PCIE0 以启用 PCMSK0 来测量状态变化并产生中断 侦测 PB for (i = 0; i < IRPinCount; i++) { PCMSK0 |= (1 << IRPinSequence); // 设置 引脚 来测量状态变化并产生中断, PB PCMSK1 |= (1 << IRPinSequence); // 设置 引脚 来测量状态变化并产生中断, PB } sei(); // turn on interrupts } ISR (PCINT0_vect)// PB脚可以触发 PCINT0中断 { uint8_t changedbits;//设立一个无符号整数来记录寄存器的变化 changedbits = PINB ^ PortB_history; PortB_history = PINB; uint8_t i = 0; if (changedbits & (1 << PINB0)) { if (PINB & (1 << PINB0)) { //上升沿 i = 6; IRPinCallBack(i); } } if (changedbits & (1 << PINB1)) { } if (changedbits & (1 << PINB2)) { } if (changedbits & (1 << PINB3)) { } if (changedbits & (1 << PINB4)) { if (PINB & (1 << PINB4)) { //上升沿 i = 5; IRPinCallBack(i); } } if (changedbits & (1 << PINB5)) { if (PINB & (1 << PINB5)) { //上升沿 i = 4; IRPinCallBack(i); } } } ISR (PCINT1_vect)// PC脚可以触发 PCINT1中断 { uint8_t changedbits;//设立一个无符号整数来记录寄存器的变化 uint8_t i = 0; changedbits = PINC ^ PortC_history; PortC_history = PINC; if (changedbits & (1 << PINC0)) { if (PINC & (1 << PINC0)) { //上升沿 i = 3; IRPinCallBack(i); } } if (changedbits & (1 << PINC1)) { if (PINC & (1 << PINC1)) { //上升沿 i = 2; IRPinCallBack(i); } } if (changedbits & (1 << PINC2)) { } if (changedbits & (1 << PINC3)) { } if (changedbits & (1 << PINC4)) { if (PINC & (1 << PINC4)) { //上升沿 i = 1; IRPinCallBack(i); } } if (changedbits & (1 << PINC5)) { if (PINC & (1 << PINC0)) { //上升沿 i = 0; IRPinCallBack(i); } } } ISR (PCINT2_vect)// PD脚可以触发 PCINT1中断? { uint8_t changedbits;//设立一个无符号整数来记录寄存器的变化 changedbits = PIND ^ PortD_history; PortD_history = PIND; if (changedbits & (1 << PIND0)) { } if (changedbits & (1 << PIND1)) { } if (changedbits & (1 << PIND2)) { // if ((~PIND) & (1 << PIND2)) { //下降沿 // USCallBack(1); // } } if (changedbits & (1 << PIND3)) { // if ((~PIND) & (1 << PIND3)) { //下降沿 // USCallBack(2); // } } if (changedbits & (1 << PIND4)) { } if (changedbits & (1 << PIND5)) { } } |
|
|
|
只有小组成员才能发言,加入小组>>
2597 浏览 0 评论
794浏览 1评论
240浏览 1评论
559浏览 0评论
305浏览 0评论
517浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 11:33 , Processed in 1.103158 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号