日本ab视频-日本ab在线-日本a黄-日本a黄色片-国产亚洲精品第一综合linode-国产亚洲精品高清在线

新聞資訊
avr單片機 PWM 超級函數 可以設置周期為2us~65ms
2010-11-28


共享超級PWM設置函數 可以設置周期為2us~65ms 可設占空比 2路PWM,使用定時器1,16位定時器,已經在電機控制產品中使用

實測2us~65ms 非常準確
void pwmIint_us(uint16 zhouqi_us,uint16 high_us_A,uint16 high_us_B)
三個參數為 周期,第一路高電平時間,第二路高電平時間。

古欣 版權所有,轉載請注明出處

請自行定義部分內容

要直接編譯 還需要加一些定義,如包含頭文件,增加類型定義。
typedef unsigned char uint8;

typedef unsigned int uint16;

[code="c"]

#define F_CPU_M   7.3728
#define DDR_OC1   DDRB
#define PORT_OC1A PB1
#define PORT_OC1B PB2
#define CKDIV_0     0
#define CKDIV_1     1
#define CKDIV_8     2
#define CKDIV_64   3
#define CKDIV_256   4
#define CKDIV_1024   5

//Time=PRE*(MAX-TCNT0+1) /F_cpu 這里time以秒為單位 F_cpu以hz為單位
//Time*F_cpu=PRE*MAX
//Max=Time*F_cpu/pre;

//2us ~ 65000us (65ms)
void pwmIint_us(uint16 zhouqi_us,uint16 high_us_A,uint16 high_us_B)
{
uint8 ckdiv = 1; //預分頻
float tmp;

if((float)zhouqi_us>(float)(65536/F_CPU_M))
{
TCCR1B=CKDIV_8;//控制預分頻
ckdiv = 8;
}
else
{
TCCR1B=CKDIV_1;//控制預分頻
}

tmp=F_CPU_M*(float)(zhouqi_us/ckdiv);
ICR1 = (uint16)tmp; //控制最高計數
if(high_us_A)
{
DDR_OC1|=(1<<PORT_OC1A); //對應引腳為輸出
TCCR1A |=(1<<COM1A1);   //比較匹配時清零
tmp=F_CPU_M*(float)(high_us_A/ckdiv);
OCR1A=(uint16)tmp;
}
if(high_us_B)
{
DDR_OC1|=(1<<PORT_OC1B);
TCCR1A |=(1<<COM1B1);
tmp=F_CPU_M*(float)(high_us_B/ckdiv);
OCR1B=(uint16)tmp;
}

TCCR1A |=(1<<WGM11); //WGM 11 12 13 組合表示 快速PWM模式 計數TOP 為ICR1
TCCR1B |=((1<<WGM13)|(1<<WGM12));
}

[/code]

pwmIint_us(200,100,0);的效果如圖

pwmIint_us(65000,32500,0); 的效果



關注有人微信公眾號
了解更多信息

主站蜘蛛池模板: 日韩欧美一级大片 | 久草视 | 天天视频免费入口 | 中文字幕在线欧美 | 精品久久久久久久久久久久久久久 | 亚洲乱码视频在线观看 | 9热这里只有真品 | 91香蕉视频免费在线观看 | 六月婷婷激情 | 久久这里只有精品66re99 | 网站国产 | 国内在线亚洲精品第一线 | 亚洲aav| 欧美一区二区三区男人的天堂 | 黑人与欧洲性大战 | 韩国日本免费高清观看 | 国产又爽又黄又刺激的软件 | 色99视频| 另类视频第一页 | 91精品啪在线观看国产91九色 | 久草精品在线 | 亚洲精品动漫在线 | 久视频在线 | 九九99香蕉在线视频免费 | 日本高清不卡在线观看 | 麻豆国产一区二区在线观看 | 亚洲欧美日韩视频一区 | 亚洲高清自拍 | 免费观看欧美性生 | 波多野结衣四虎精品影库 | 欧美日韩一区二区视频图片 | 成人在线免费播放 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 久久精品国产99久久久 | 日本不卡一区二区三区四区 | 国产欧美日韩va | 日韩资源在线 | 午夜视频在线观看一区二区 | 综合色天天 | 日本精品久久久久中文字幕 1 | 国产中文字幕在线免费观看 |