2015-04-02 37 views
0

我正在嘗試在同一個定時器上執行2個操作:PWM和正跳沿中斷。我可以讓兩個人都能單獨工作,但似乎無法讓他們一起工作。我現在用在對Arduino板atmega2560芯片和試圖做到這一點的定時器1,這是確實的PWM代碼:Atmega2560在正跳沿建立PWM和中斷

TCCR1A = 0; 
TCCR1B = 0; 
TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1B1); 
TCCR1B |= (1<<WGM12)|(1<<WGM13)|(1<<CS10); 
ICR1 = 29999; 
OCR1A = 0; 
OCR1B = 0; 

ICR1將頻率設定爲約533Hz,而OCR1A爲佔空比;我改變了整個軟件的其他部分,因爲它是爲了控制直流電機。接下來我想要做的就是在533Hz的每個正邊沿上觸發並中斷。我試圖使用TIMSK1,但似乎無法使其工作。誰會知道如何編程?謝謝

回答

0

你應該提供積極的邊緣檢測和pwm的個人代碼,因爲你說你可以使他們都單獨工作。這會讓你更容易看到你在做什麼,爲什麼他們不一起工作,反而不給我們任何工作。 PWM和中斷的實現取決於環境和IC,但通用算法是相同的。它最有可能是你在代碼中忽略的小事,所以我會包含它以獲得更多的迴應。