|
ATXMEGA - запуск от внешнего таймера, ATXMEGA128A1 |
|
|
|
Sep 11 2013, 11:14
|

Местный
  
Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781

|
Товарищи! Помогите запустить ATXMEGA128A1 от врешнего кварцевого генератора 25 МГц! Пишу под GCC в AVR Studio 4.19. В качестве результата хочется получить на PE7 clkPer (через event system). Мой код, который не дал результата, таков: Код int main(void) { cli();
OSC_XOSCCTRL = OSC_FRQRANGE_12TO16_gc | OSC_XOSCSEL_EXTCLK_gc; OSC_CTRL = OSC_XOSCEN_bm; while(!(OSC_STATUS & OSC_XOSCRDY_bm)) {; }
CPU_CCP = CCP_IOREG_gc; CLK_CTRL = CLK_SCLKSEL_XOSC_gc; OSC_CTRL &= 0xFE;
EVSYS_CH0MUX = EVSYS_CHMUX_PRESCALER_1_gc; // ClkPER div by 2^0 is event source PORTCFG_CLKEVOUT = PORTCFG_EVOUT_PE7_gc; // Event Channel 7 Output on Port E pin 7 // PORTCFG_CLKOUT_PE7_gc = (0x03<<0)
PORTA_DIR = 0b00000000; PORTB_DIR = 0b11111111; PORTC_DIR = 0b00000000; PORTD_DIR = 0b00000000; PORTE_DIR = 0b10000000; // PE7 must be configured as output for the event to be available on the pin PORTF_DIR = 0b00000000; PORTH_DIR = 0b00000000; PORTJ_DIR = 0b00011000; PORTK_DIR = 0b00000000; PORTQ_DIR = 0b0000;
while (1) { asm ("nop"); } }
Сообщение отредактировал Slonofil - Sep 11 2013, 11:15
|
|
|
|
|
 |
Ответов
|
Sep 12 2013, 12:29
|

Местный
  
Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781

|
Цитата(zombi @ Sep 12 2013, 15:26)  Не понимаю зачем для получения на пине только clkPER напрягать ещё и систему событий??? Ну, встретил такой пример - и подумал, что так и надо. Стало быть, можно обойтись строчкой PORTCFG_CLKEVOUT = PORTCFG_CLKOUT_PE7_gc; ?
|
|
|
|
|
Sep 13 2013, 17:04
|

Местный
  
Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781

|
Товарищи! В общем, выяснилось, почему не дышал кристалл... оказалось, что в настройках проекта путь к hex'y был из старого проекта с ATTINY24A  После выбора правильного пути всё в норме и с работой от RC2M, и с внешним генератором. Собственно, работающий у меня код (настройка OSC + CLK) и вывод в PE7 системной частоты - вдруг кому пригодится. Код int main (void) { cli ();
PORTA_DIR = 0b00000000; PORTB_DIR = 0b11111111; // PORTB to OUTPUT PORTC_DIR = 0b00000000; PORTD_DIR = 0b00000000; PORTE_DIR = 0b10000000; // PE7 must be configured as output for the event to be available on the pin PORTF_DIR = 0b00000000; PORTH_DIR = 0b00000000; PORTJ_DIR = 0b00011000; PORTK_DIR = 0b00000000; PORTQ_DIR = 0b0000;
CPU_CCP = CCP_IOREG_gc; // Enable change of the protected I/O registers CLK_PSCTRL = CLK_PSADIV_1_gc | CLK_PSBCDIV_1_1_gc; // Select prescaler A, B & C division ratio "1", no division
OSC_XOSCCTRL = OSC_FRQRANGE_04TO2_gc | OSC_XOSCSEL_EXTCLK_gc; // External Clock with 6 CLK Start-up Time OSC_CTRL |= OSC_XOSCEN_bm; // External Oscillator Enable while (!(OSC_STATUS & OSC_XOSCRDY_bm)) {; } // Waiting for external clock source stable
CPU_CCP = CCP_IOREG_gc; // Enable change of the protected I/O registers CLK_CTRL = CLK_SCLKSEL_XOSC_gc; // Switch to external oscillator or clock OSC_CTRL &= ~OSC_RC2MEN_bm; // Disable RC2M
PORTCFG_CLKEVOUT = PORTCFG_CLKOUT_PE7_gc; // ClkPER Output on Port E pin 7
while (1) { PORTB_OUTTGL = 0xFF; // PORTB test meander } } Большое спасибо всем неравнодушным  !
|
|
|
|
|
Sep 26 2013, 15:33
|

Местный
  
Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781

|
Товарищи, не сочтите за труд, посоветуйте, как быть! Штудирую таймер-счётчик TCC0, конкретно Single-slope PWM. И возник такой вопрос: выводы OC0х в моей XMEGA распиханы по 3 портам параллельно. Настраиваю PC0 на выход, TC0_CCAEN в единицу - и на РС0 имею ШИМ. А как получить этот же ШИМ на PD0? И настраивал его на выход, и РС0 на вход ставил - нет в порту D ШИМа. Что не так делаю? По какому принципу вообще распихиваются сигналы по портам? Сейчас в РС0 вывожу так: Код PORTC_DIR = 0b00000001;
TCC0_CTRLA = TC_CLKSEL_DIV1_gc; // DIV1, Prescaler: Clk TCC0_CTRLB = TC0_CCAEN_bm | TC_WGMODE_SS_gc; // CCAEN = 1, Single-slope PWM operation TCC0_CTRLD = TC_EVACT_OFF_gc | TC_EVSEL_OFF_gc; // No Event Action, No Event Source TCC0_CTRLE = 0; // NORMAL, TCC0 is set to normal mode (timer/counter type 0) TCC0_PER = 0xC34E; // TOP = 0xFFFF TCC0_CCA = 0x61A7; // Non-buffering method TCC0_INTCTRLA = TC_ERRINTLVL_OFF_gc | TC_OVFINTLVL_OFF_gc; // Error Interrupt Disabled, Overflow Interrupt Disabled TCC0_INTCTRLB = TC_CCDINTLVL_OFF_gc | // Compare or Capture D...A Interrupts Disabled TC_CCCINTLVL_OFF_gc | TC_CCBINTLVL_OFF_gc | TC_CCAINTLVL_OFF_gc;
|
|
|
|
|
Sep 26 2013, 16:24
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 17-09-06
Пользователь №: 20 471

|
Цитата(Slonofil @ Sep 26 2013, 20:33)  А как получить этот же ШИМ на PD0? И настраивал его на выход, и РС0 на вход ставил - нет в порту D ШИМа. Что не так делаю? По какому принципу вообще распихиваются сигналы по портам? на PD0 можно вывести только с счетчиков TCD*. На порт E с счетчиков TCE* и т.д
Сообщение отредактировал bob1 - Sep 26 2013, 16:24
|
|
|
|
Сообщений в этой теме
Slonofil ATXMEGA - запуск от внешнего таймера Sep 11 2013, 11:14 zombi Вы уверены что правильно разрешаете работу генерат... Sep 11 2013, 15:42 Slonofil Цитата(zombi @ Sep 11 2013, 18:42) Вы уве... Sep 11 2013, 16:19  zombi Цитата(Slonofil @ Sep 11 2013, 19:19) Но ... Sep 11 2013, 16:41   Slonofil Цитата(zombi @ Sep 11 2013, 19:41) Что зн... Sep 11 2013, 16:45 zombi Ну тогда я пас.
Надо сишников подождать
Или накр... Sep 11 2013, 16:51 Slonofil Цитата(zombi @ Sep 11 2013, 19:51) Ну тог... Sep 11 2013, 16:56  zombi Цитата(Slonofil @ Sep 11 2013, 19:56) С ф... Sep 11 2013, 17:06   Slonofil Цитата(zombi @ Sep 11 2013, 20:06) Ну Вам... Sep 11 2013, 17:11 Slonofil Кстати, пока контроллер на плате мне не отвечает в... Sep 12 2013, 09:13 Xenia Цитата(Slonofil @ Sep 12 2013, 13:13) Пра... Sep 12 2013, 09:50  Slonofil Цитата(Xenia @ Sep 12 2013, 12:50) Главны... Sep 12 2013, 09:59   Xenia Цитата(Slonofil @ Sep 12 2013, 13:59) Инт... Sep 12 2013, 10:16    Slonofil Цитата(Xenia @ Sep 12 2013, 13:16) Не при... Sep 12 2013, 10:24     Xenia Цитата(Slonofil @ Sep 12 2013, 14:24) Вид... Sep 12 2013, 10:55      Slonofil Цитата(Xenia @ Sep 12 2013, 13:55) К сожа... Sep 12 2013, 10:59       Xenia Цитата(Slonofil @ Sep 12 2013, 14:59) Не ... Sep 12 2013, 11:28        Slonofil Цитата(Xenia @ Sep 12 2013, 14:28) Я сраз... Sep 12 2013, 11:36         Xenia Slonofil, мой предыдущий пост дописан. Прочтите ег... Sep 12 2013, 11:43          Slonofil Цитата(Xenia @ Sep 12 2013, 14:39) Slonof... Sep 12 2013, 11:43 zombi У меня проект с A4/A4U отлично работает от внешнег... Sep 12 2013, 11:44 Xenia Цитата(zombi @ Sep 12 2013, 15:44) У меня... Sep 12 2013, 11:53  Slonofil Цитата(Xenia @ Sep 12 2013, 14:53) В тако... Sep 12 2013, 12:01 zombi Точно ноль!
Вся подпрограмма:
КодCLK_init... Sep 12 2013, 12:06 Slonofil Цитата(zombi @ Sep 12 2013, 15:06) 2 Slon... Sep 12 2013, 12:17 ESN Цитата"Помогите запустить ATXMEGA128A1 от вре... Nov 15 2013, 09:41 Slonofil Цитата(ESN @ Nov 15 2013, 12:41) И все же... Nov 15 2013, 11:15 zombi Цитата(ESN @ Nov 15 2013, 13:41) И все же... Nov 15 2013, 14:58  Slonofil Цитата(zombi @ Nov 15 2013, 17:58) внешни... Nov 15 2013, 15:39 ESN Спасибо. Глядя на Figure 10-1. The clock system,c... Nov 15 2013, 11:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|