请多多指点,谢谢。
两个问题:
函数中,可以看出ABC的值是不停变换(程序里没考虑ABC一直加,溢出怎么办????)
sel_B,代指P1.2. 然后由ABC与0x02运算,得出状态值。 stm32中该如何表达??????
下面是个程序:
#include <reg51.h>
#include <intrins.h>
sbit sel_A = P1^1; 多通道开关 A,B,C三个选择端对应80C51的三个端口,从而控制通道开关
sbit sel_B = P1^2;
sbit sel_C = P1^3;
unsigned char ABC;
void timer_set(); //定时器初始化函数
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
void IntTimer0() interrupt 1
{
off_system_interrupt();
ABC++;// 可以看出ABC的值是不停变换,程序里没考虑ABC一直加,溢出怎么办????
sel_A=ABC&0x01; //
sel_B=ABC&0x02; // sel_B指P1.2. 然后由ABC与0x02运算,得出状态值。 stm32中如何表达??????
sel_C=ABC&0x03; //
delayNOP(); //定时消除抖动
collection_data();
on_system_interrupt();
}
// 函数名称: timer_set
// 功能说明: 设置定时器工作状态,与硬件有关
void timer_set()
{
TMOD=0x22; //定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装)
PCON=0x00;
TH0=(256-100);
TL0=TH0;
ET0=1;
}
此帖出自
小平头技术问答
#define sel_A_PORT GPIOA
#define sel_A_BIT GPIO_Pin_10
if (ABC&1)
sel_A_PORT->ODR|=sel_A_BIT;
else
sel_A_PORT->ODR&=~sel_A_BIT;
一周热门 更多>