реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> прерывание pwm dspic30f2023
pipka
сообщение Oct 16 2009, 07:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-07
Пользователь №: 29 465



Здравствуйте, помогите разобраться почему не срабатывает прерывание ШИМ.

код(MPLAB C30):


#include <p30f2023.h>
#include "functions.h"


_FOSCSEL(FRC_PLL); //FRC with PLL
_FOSC(CSW_FSCM_OFF & FRC_HI_RANGE & OSC2_IO & HS_EC_DIS); //Clock switching is disabled,FCKSM is disabled
_FWDT(FWDTEN_OFF); //Watchdog timer off
_FPOR(PWRT_OFF); //Power-on Reset
_FICD(ICS_PGD);

int main(void)
{
init();
while(1)
{

}

}

void __attribute__((interrupt,no_auto_psv)) _PWM1Interrupt(void)
{
IFS1bits.PWM1IF=0;
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
asm volatile ("nop");
}


void init (void)
{

OSCTUNbits.TUN=0b0000;

//......................//

TRISA=0b0000000000000000;
TRISB=0b0000000000000000;
TRISD=0b0000000000000000;
TRISE=0b0000000000000000;
TRISF=0b0000000000000000;

PORTA=0b0000000000000000;
PORTB=0b0000000000000000;
PORTD=0b0000000000000010;
PORTE=0b0000000000000000;
PORTF=0b0000000000000000;

LATA=0b0000000000000000;
LATB=0b0000000000000000;
LATD=0b0000000000000010;
LATE=0b0000000000000000;
LATF=0b0000000000000000;

// PWM1 //

PTCONbits.PTEN=0b00;
PTCONbits.PTSIDL=0b00;
PTCONbits.SESTAT=0b00;
PTCONbits.SEIEN=0;
PTCONbits.EIPU=0b00;
PTCONbits.SYNCPOL=0b00;
PTCONbits.SYNCOEN=0b00;
PTCONbits.SYNCEN=0;
PTCONbits.SYNCSRC=0b00;
PTCONbits.SEVTPS=0b0000;
PTPER=30960;
PDC1=15480;
PWMCON1bits.FLTSTAT=0b00;
PWMCON1bits.CLSTAT=0b00;
PWMCON1bits.TRGSTAT=0b00;
PWMCON1bits.FLTIEN=0b00;
PWMCON1bits.CLIEN=0b00;
PWMCON1bits.TRGIEN=0;
PWMCON1bits.ITB=0b00;
PWMCON1bits.MDCS=0b00;
PWMCON1bits.DTC=0b10;
PWMCON1bits.XPRES=0b00;
PWMCON1bits.IUE=0b00;

FCLCON1bits.FLTMOD=0b11;
FCLCON1bits.CLMODE=0;

DTR1=0b000000000000;
IOCON1bits.PENH=1;
IOCON1bits.PENL=1;
IOCON1bits.POLH=1;
IOCON1bits.POLL=1;
IOCON1bits.PMOD=0b00;
IOCON1bits.OVRENH=0;
IOCON1bits.OVRENL=0;
PTCONbits.PTEN=1;

//настройка прерываний//

INTCON1bits.NSTDIS=1;

SRbits.IPL=0;
IPC4bits.PWM1IP=6; //interrupt priority for PWM
IFS1bits.PWM1IF=0;
IEC1bits.PWM1IE=1;

}

Спасибо.
Go to the top of the page
 
+Quote Post
Vlad27
сообщение Oct 16 2009, 12:25
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227



По какому событию ждете прерывания?
Go to the top of the page
 
+Quote Post
pipka
сообщение Oct 16 2009, 12:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-07
Пользователь №: 29 465



Цитата(Vlad27 @ Oct 16 2009, 15:25) *
По какому событию ждете прерывания?


Прерывание жду по обнулению регистра PTMR после достижения значения, записанного в регистр PTPER.
Go to the top of the page
 
+Quote Post
Vlad27
сообщение Oct 16 2009, 13:54
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227



Как я понял из дейтшита, источником внутреннего прерывания может быть Special Event Comparison Register
для primary time base и триггеры для каждого из PWM модулей. Т.е., надо разрешить прерывания по
триггеру (TRIGIEN=1) и прописать значение сравнения в TRIG1 в данном случае.
Go to the top of the page
 
+Quote Post
pipka
сообщение Oct 19 2009, 05:40
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-07
Пользователь №: 29 465



Цитата(Vlad27 @ Oct 16 2009, 16:54) *
Как я понял из дейтшита, источником внутреннего прерывания может быть Special Event Comparison Register
для primary time base и триггеры для каждого из PWM модулей. Т.е., надо разрешить прерывания по
триггеру (TRIGIEN=1) и прописать значение сравнения в TRIG1 в данном случае.


Как я понял это триггеры для запуска АЦП.

"The PWM module also features an additional ADC trigger
output for each PWM generator. This feature is very
useful when the PWM generators are operating in
Independent Time Base mode."
Go to the top of the page
 
+Quote Post
pipka
сообщение Oct 19 2009, 07:10
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-07
Пользователь №: 29 465



Все, заработало. Vlad27, вы были правы. Спасибо. biggrin.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016