找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

stc8h單片機pwm關(guān)閉有延時

查看數(shù): 1902 | 評論數(shù): 4 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2023-8-27 17:14

正文摘要:

想做一個開1秒關(guān)0.5秒效果 這是代碼。 現(xiàn)在狀態(tài)是,時間是對的,但是pwm輸出好像有延時一樣,做不到開1關(guān)0.5,要么就開一下關(guān)一下(迅速的)或者開兩三秒關(guān)一下

回復(fù)

ID:1079614 發(fā)表于 2023-8-30 08:34
coody_sz 發(fā)表于 2023-8-28 10:37
PWM操作是馬上起作用的,不會出現(xiàn)延時的,有延時是你的額程序操作邏輯問題。

STC8H系列的高級PWM,連續(xù) ...

謝謝大佬
ID:1040201 發(fā)表于 2023-8-28 16:24
coody_sz 發(fā)表于 2023-8-28 10:37
PWM操作是馬上起作用的,不會出現(xiàn)延時的,有延時是你的額程序操作邏輯問題。

STC8H系列的高級PWM,連續(xù) ...

寫的很好 ,應(yīng)該是邏輯問題,
ID:1034262 發(fā)表于 2023-8-28 10:37
PWM操作是馬上起作用的,不會出現(xiàn)延時的,有延時是你的額程序操作邏輯問題。

STC8H系列的高級PWM,連續(xù)輸出0或1有2種方法(以PWM1P為例):

1、使用PWMx_ENO禁止輸出PWM,對應(yīng)IO成為普通IO,禁止PWM輸出后,由這個IO直接輸出高或低電平。
  PWMA_ENO |= 0x01;   // 允許PWM1P輸出
  delay_ms(5);        // P1.0輸出PWM 5ms
  P10 = 1;            // P1.0輸出高電平
  PWMA_ENO &= ~0x01;  // 關(guān)閉PWM輸出
  delay_ms(5);        // P1.0輸出高電平5ms
               
  PWMA_ENO |= 0x01;   // 允許PWM1P輸出
  delay_ms(5);        // P1.0輸出PWM 5ms
  P10 = 0;            // P1.0輸出低電平
  PWMA_ENO &= ~0x01;  // 關(guān)閉PWM輸出
  delay_ms(5);        // P1.0輸出高電平5ms

2、設(shè)置PWMx_CCMRn,強制PWM輸出有效(高)電平/無效(低)電平。
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x60;  // PWM正常輸出
  delay_ms(5);                               // PWM輸出5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x40;  // 強制PWM輸出無效(低)電平
  delay_ms(5);                               // PWM輸出低電平5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x60;  // PWM正常輸出
  delay_ms(5);                               // PWM輸出5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x50;  //強制PWM輸出有效(高)電平
  delay_ms(5);                               // PWM輸出高電平5ms
ID:161164 發(fā)表于 2023-8-28 10:31
代碼不全
你是如何定時的?
為啥不截行數(shù)?

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表