内容介绍
内容介绍
1 实现功能介绍
这回根据硬禾的活动要求, 自己画了个mickrobus兼容板子, 实现了 一个试轴器应用.
这个试轴器支持热插拔, 可以检测轴和全彩led, 全彩led是通过 pwm(后续实现)控制的共阳RGB LED实现. 按下的时候出现炫彩, 松 开灯灭.
2 主要代码片段
主要代码为io pin初始化, 状态设置和读取数字量.
#include "main.h" #include <xc.h> #define _XTAL_FREQ 8000000 #define LED_TRIS_B TRISBbits.TRISB6 // BLUE #define LED_TRIS_G TRISBbits.TRISB4 // Green #define LED_TRIS_R TRISCbits.TRISC7 // RED //#define LED_TRIS TRISAbits.TRISA2 #define LED_STATE_B LATBbits.LATB6 #define LED_STATE_G LATBbits.LATB4 #define LED_STATE_R LATCbits.LATC7 #define KEY_SCAN_TRIS TRISCbits.TRISC6 #define KEY_SCAN_STATE LATCbits.LATC6 #define KEY_TEST_TRIS TRISCbits.TRISC2 #define KEY_TEST_STATE PORTCbits.RC2 #define KEY_TEST_WEAK_PULL_UP WPUCbits.WPUC2 void initOSC(void) { OSCCON1 = 0x10; OSCCON3 = 0x00; OSCEN = 0x00; OSCFRQ = 0x03; OSCTUNE = 0x00; while (PLLR == 0); } void initWDT(void) { WDTCON0bits.SWDTEN = 0; WDTCON0bits.SEN = 0; } void initIO() { ANSELA = 0x00; ANSELB = 0x00; ANSELC = 0x00; LED_TRIS_R = 0; // output LED_STATE_R = 1; LED_TRIS_G = 0; // output LED_STATE_G = 1; LED_TRIS_B = 0; // output LED_STATE_B = 1; KEY_SCAN_TRIS = 0; // output KEY_SCAN_STATE = 1; // high KEY_TEST_WEAK_PULL_UP = 0; KEY_TEST_TRIS = 1; // input KEY_TEST_STATE = 0 ; // switch off } void main(void) { initOSC(); initWDT(); initIO(); while (1) { if (KEY_TEST_STATE == 1) { LED_STATE_B = 0; __delay_ms(100); LED_STATE_B = 1; __delay_ms(100); LED_STATE_G = 0; __delay_ms(100); LED_STATE_G = 1; __delay_ms(100); LED_STATE_R = 0; __delay_ms(100); LED_STATE_R = 1; __delay_ms(100); } } return; }
3 心得体会和建议
- 这个mplab x ide基于netbeans, 好看, 但是速度慢, 容易崩.
- 没有gcc编译器支持, 只能用microchip的xc8编译器或者sdcc(没试过)
- 本期还是很有意思的, 用最简单的方法实现了自己想要实现的项目.
4 Code
团队介绍
james
评论
0 / 100
查看更多
猜你喜欢
基于DM164137的PWM电机调速试验(Funpack第七期)使用DM164137开发板和MIKROE-4114模块,实现驱动电机正反转和调速。
每按下S1按键,电机可以在停止、低速正转、高速正转、停止、低速反转、高速反转等6种状态依次切换。
chinaking
909
Funpack 第七期 DM164137 实现按键控制LED灯基于DM164137通过案件扩展功能实现不同按键方式控制LED灯,通过串口显示按键信息和电位计信息。
倪不讲道李
899
Funpack 第七期 8位PIC®MCU开发板DM164137初玩任务:通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)。
都市木头
890