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

 
 
> Renesas R8C timer RD buffer register mode, Канал 1 работает, канал 0 - нет
Dog Pawlowa
сообщение Mar 11 2011, 09:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Собственно сабж. Скоро лопну от злости.
В режиме без буфера все работает.
В режиме с буфером содержимое трех регистров переносится, а TRDGRD0 не переносится в TRDGRB0 (вижу в отладчике).


Код
#define BUFFERED

#ifndef BUFFERED

#define PERIOD_REG0    trdgra0
#define PERIOD_REG1    trdgra1
#define PWM_REG0    trdgrb0
#define PWM_REG1    trdgrb1

#else

#define PERIOD_REG0    trdgrc0
#define PERIOD_REG1    trdgrc1
#define PWM_REG0    trdgrd0
#define PWM_REG1    trdgrd1

#endif




void ConfigureTimerRD(void)
{    trdstr    = 0x00;        // stop timer
#ifdef BUFFERED
    trdmr    = 0xf1;        // registers 0 and 1 work Synchro with buffer
#else
    trdmr    =    0x01;
#endif
    trdpmr    = 0x11;        // TRDIOB0, TRDIOB1 : PWM
    trdfcr    = 0x80;        // not PWM3 mode
    trdpocr0 = 0x07;    // output active level = high
    trdocr    = 0x00;        // initial output = 0
    trdoer1 = 0xff;        // disable all outputs of PWM
    trdoer2 = 0x00;        // disable outputs by INT0
    trdiora0= 0xaa;
    trdiora1= 0xaa;    
    trdiorc0= 0xaa;
    trdiorc1= 0xaa;    

    trdcr0    = 0x23;        // count at both edges f8 , clear together with 1
    trdcr1    = 0x23;        // count at both edges f8
    PERIOD_REG0 = TIMER_PWM_RESOL-1;    
    PERIOD_REG1 = TIMER_PWM_RESOL-1;    
    PWM_REG0    = TIMER_PWM_RESOL;        // change point of PWM
    PWM_REG1    = 0;        // change point of PWM
    trd0    = 0xffff;    // counter itself
    trd1    = 0xffff;
        
    trdier0 = 0x00;        // enable compare A0 interrupt
    trdier1 = 0x00;        // disable all interrupts in 1 channel
//    trd0ic = 0x04;        // interrupts priority register - enabled
    trdstr = 0x0F;        // Go!

    OFF_PIN_DU3();
    OFF_PIN_DU4();
}



--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Dog Pawlowa
сообщение Mar 13 2011, 14:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Сам спросил - сам разобрался.

Регистр для управления полярностью выходного сигнала имеет гораздо более сильное влияние на всю работу сравнения и генерации ШИМ, чем это можно представить из названия. После установки регистров каналов 0 и 1 в одинаковое значение ну и выяснения подробностей, не описанных в документации, все заработало.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Axel
сообщение Mar 14 2011, 08:29
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Угу, один из тех моментов, которые заставляют пересматривать проекты в пользу, например, STM8...
Go to the top of the page
 
+Quote Post

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

 


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


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