Browsing this Thread:
1 Anonymous Users
|
Re: dsP30F2010 OC模組輸出PWM訊號問題
|
|
版主
Joined
: 2004/4/30 10:53 最後登入時間
: 2021/11/30 18:11
From CAE, Microchip
Group:
站務管理者 註冊會員
Level : 75 HP : 744 / 1861 MP : 5367 / 111040 EXP : 45
|
你一定沒有用 Microchip 的除錯工具來除錯吧! 這樣不是玩的很辛苦嗎?
發表於: 2009/10/15 9:55
|
|
|
Re: dsP30F2010 OC模組輸出PWM訊號問題
|
|
新會員
Joined
: 2009/10/12 10:55 最後登入時間
: 2010/2/10 12:08
Group:
註冊會員
Level : 1 HP : 0 / 8 MP : 1 / 373 EXP : 34
|
已經找到問題了... 原來是Watchdog timer設定為Enable... 只要將Watchdog timer設定為Disenable即可...
發表於: 2009/10/14 19:06
|
|
|
dsP30F2010 OC模組輸出PWM訊號問題
|
|
新會員
Joined
: 2009/10/12 10:55 最後登入時間
: 2010/2/10 12:08
Group:
註冊會員
Level : 1 HP : 0 / 8 MP : 1 / 373 EXP : 34
|
我使用dsPIC30F2010 OC模組輸出PWM訊號時,當使用RS-232改變一次OC1RS值後,PWM訊號有出來,但是隔一段時間PWM訊號就會消失,需再次使用RS-232設定OC1RS的值,PWM訊號才會出來,不知道是程式哪裡有錯誤還是有暫存器沒有設定到,請大大幫忙看一下..
#include<p30F2010.h> #include <timer.h> #include <outcompare.h> int Duty,V,i; char uart;
//---主程序-------------------------------- void main() { //----UART---- TRISFbits.TRISF2 = 1; TRISFbits.TRISF3 = 0; U1MODEbits.STSEL = 0; U1MODEbits.PDSEL = 0; U1MODEbits.ABAUD = 0; U1BRG = 12; U1MODEbits.UARTEN = 1; U1STA = 0x0400; //IEC0bits.U1RXIE = 1;
//----DA---- PR2 = 1000; OC1R = 0; OC1RS = 0; OC1CON = 0x0006; ConfigIntTimer2( T2_INT_PRIOR_6 & T2_INT_OFF ) ; TMR2 = 0; PR2 = 1000; T2CON = 0x8000; T2CONbits.T32 = 0; CloseOC1(); ConfigIntOC1(OC_INT_OFF & OC_INT_PRIOR_7);
OC1CONbits.OCM = 0; OC1RS = 0x0000; OC1R = 0x0000; OC1CON = 0x0006;
while(1){ if(IFS0bits.U1RXIF){ Duty =U1RXREG; V = (Duty-48)*100; IFS0bits.U1RXIF = 0; OC1RS = V; } }
發表於: 2009/10/12 11:10
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.