历史上的今天
今天是:2025年03月05日(星期三)
2020年03月05日 | MSP430 捕获模式,定时器A连续计数模式
2020-03-05 来源:eefocus
/*捕获模式,定时器A连续计数模式。有软件循环产生方波信号,信号同时接入
P1.1和P1.2 ,由CCR1由CCR1获取周期,CCR0确定信号占空比*/
#include "io430.h"
unsigned int jt,kt,lastCCR0,lastCCR1;
int main( void )
{
unsigned int i;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
TACTL=TASSEL_2+ID_3+MC_2+TACLR;//SMCLK,8分频,连续模式
/*#define CM_0 (0*0x4000u) // Capture mode: 0 - disabled
#define CM_1 (1*0x4000u) //Capture mode: 1 - pos. edge
#define CM_2 (2*0x4000u) // Capture mode: 1 - neg. edge
#define CM_3 (3*0x4000u) //Capture mode: 1 - both edges */
CCTL0=CM_3+CCIS_0+SCS+CAP+CCIE;
CCTL1=CM_1+CCIS_1+SCS+CAP+CCIE;
jt=0;kt=0;
lastCCR0=0;
lastCCR1=0;
P1DIR=BIT2+BIT1;//设置P1.1,P1.2为输入
P1SEL=BIT2+BIT1;//设置P1.1,P1.2为第二功能
P3DIR=BIT0;//设置P3.0为输出
P3OUT=0X00;
__enable_interrupt();
while(1)
{
for(i=0;i<1000;i++)
__no_operation();
P3OUT^=BIT0;
}
return 0;
}
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1()
{
switch(TAIV)
{
case 2:
jt=CCR1-lastCCR1;//两次上升沿的时间间隔
lastCCR1=CCR1;
break;
case 4:break;
case 10:break;
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Time_A0()
{//如果输入信号为低电平,则表明是下降沿捕获,前一次捕获的是
//上升沿,这一次捕获和上一次捕获之差即为高电平的时间
if(SCCI==0)
{
kt=CCR0-lastCCR0;
lastCCR0=CCR0;
}
}
史海拾趣
|
我现在是用的C8051F410单片机芯片,要实现RS485通讯: P0.5为TX,P0.4为RX,P0.3为开关, 请问有没有知道如何配置他们的端口以及程序,实现收发AD端口的数据的通讯功能!… 查看全部问答> |
|
..\\main.c:28: ..\\uemf.h: No such file or directory ..\\main.c:29: ..\\wsIntrn.h: No such file or directory 以上两个头文件均已经加入,但还是出现错误! dependency generation failed: ccppc: No input files 提示这个 怎么弄tffs ...… 查看全部问答> |
|
GSM modem与GSM modem连接,必须用data card为SIM card才能做文字传送吗? 如题。因为我用电话的SIM卡,怎么都不能进入data call的模式来传送文字。很急。。希望得到帮助~… 查看全部问答> |
|
• 跨时钟域的设计:FIFO,双RAM,RAM+MUX,等 • 编写FPGA程序实现DSP的外设 • 编写DSP程序,通过EMIF接口访问FPGA内部的存储器… 查看全部问答> |
|
因为本人不是电子工程专业的,只是脑袋里有了想法,但是不知道怎么去实现。我现在大概说下我这个产品的概况,有兴趣的各位大师希望不吝赐教 首先它是一个通信设备,一部产品包括主机和子机两部分。 功能方面: 主机可不通过允许单方面与子机建立 ...… 查看全部问答> |




