/*
* main.c
*/
#include <msp430g2211.h>
// Timer A0 interrupt service routine
#define REA BIT1
#define REB BIT3
unsigned char count;
void hand()
{
static unsigned char oldstate;
unsigned char port,state;
if(P1IFG & 0x0A){
__delay_cycles(6000);
port = P1IN;
state= (port & REB)>>3 | (port & REA);
if(state==0x3){
if(oldstate ==0x1)
{
count++;
P1OUT ^=BIT0 ;
}else if(oldstate == 0x2)
{
count--;
P1OUT ^=BIT6 ;
}
}
oldstate = state;
}
__delay_cycles(6000);
P1IFG = 0x00;
}
#pragma vector = PORT1_VECTOR
__interrupt void p1ch (void)
{
P1OUT &= ~BIT5;
hand();
P1OUT |= BIT5;
}
#pragma vector = PORT2_VECTOR, TIMERA1_VECTOR,TIMERA0_VECTOR, NMI_VECTOR, WDT_VECTOR
__interrupt void Trap_ISR(void)
{
while(1);
}
void InitializeClocks(void);
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1SEL = 0x00;
P1DIR = 0xE5; //P1,P3,P4 input reset out
P1REN = 0xA;
P1IE = 0xA;
P1IES = 0x00;
P1OUT = 0x0B;
InitializeClocks();
__enable_interrupt();
//__bis_SR_register(GIE);
while(1)
{
}
}
void InitializeClocks(void)
{
BCSCTL1 = RSEL0 +RSEL1+RSEL2+RSEL3; // Set range
DCOCTL = DCO0+DCO1 + MOD0+MOD1+MOD2+MOD4; //tune to F Average = 16Mhz
BCSCTL2 = SELM_0 ;
}
Rotary-Encoder-MSP430G2211.zip_WWWg2211COm_msp430G2211_rotary_ro
版权申诉
186 浏览量
2022-09-24
20:09:34
上传
评论
收藏 23KB ZIP 举报
林当时
- 粉丝: 98
- 资源: 1万+
最新资源
- 2023级java语言实验报告(理工学院)(6).docx
- vscode安装教程.docx
- 编译原理实验二实验流程图
- qt中SARibbonBar的使用
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 【学生课程实验】汽车租赁系统设计与实现【源码+lw+部署文档+讲解】
- spire.doc.free-5.2.0.jar
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 阿里组件抽象,帮你了解设计系统基本流程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0