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

 
 
> AVR32 Studio на AT32UC3B0256
dinar21
сообщение Apr 8 2011, 03:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Помогите пожалуйста создать проект на AVR32 Studio на AT32UC3B0256. По возможности обучить/объяснить, желательно в живую при встрече.Есть схема проекта и идея работы. С С++ сталкиваться не приходилось. Сам я в башкирии, могу добраться до любого города в Республике Башкортостан и Татарстан. Как смогу отблагодарю.


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 30)
jasper
сообщение Apr 8 2011, 05:09
Сообщение #2


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Дело нехитрое. wink.gif

Запускаем AVR32 Studio. Идем File->New->Other...,
Прикрепленное изображение

там выбираем AVR C Project
Обзываем проект, как надо, допустим "my_project".
Прикрепленное изображение

Нажимаем кнопочку с тремя точками в Target Device, там выбираем AT32UC3B0256.
Прикрепленное изображение

Нажимаем OK и Finish.
Прикрепленное изображение

Все. Пустой проект создан! sm.gif

Потом можно пойти во Framework->Select Drivers/Components/Services добавить нужные компоненты из Фрэйворка.

ЗЫ: Еще бывает полезно в начале, вместо AVR C Project, выбрать AVR Example Project. Потом выбрать наиболее близкий к вашей задаче пример для данного процессора.
Тогда нужные компоненты из Фрэймворка добавятся автоматически и код сразу билдится будет без ошибок. А потом, отталкиваясь от примера уже добавлять свое.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 8 2011, 05:19
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Ну это понятно,мне надо вот именно то что дальше сделать помочь. Контроллер тактируется от внешнего кварца 12 МГц , как сделать чтоб он работал на 60 МГц?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 8 2011, 05:41
Сообщение #4


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Вот так всегда, спрашивает человек одно, а надо ему совсем другое. sad.gif

Изучаем пример: "EVK1101 - DRIVERS - Power Manager (PM) example 2"
Там есть функция local_start_highfreq_clock.
Она запускает PLL и включает тактирование на 48МГц. Ее чуток подправить в соответствии с даташитом, чтобы было 60.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 8 2011, 05:51
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



У меня был один большой вопрос, точнее просьба помочь или же куча мелких.


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 8 2011, 07:01
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Как вывести на одну из ножек тактовый сигнал 8 МГц для работы с АЦП при всех тех же остальных условиях (т.е. внеш.кварц 12 МГц и внутреннее тактирование 60МГц) ?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 8 2011, 08:35
Сообщение #7


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Для этой задачи существует специальный Generic clock для которого можно задавать разные источники клока и делитель.
Функции для работы с ним находятся в pm.h (pm_gc_setup, pm_gc_enable).
Выходы Generic clock (GCLK0, GCLK1, GCLK2) можно подключить к некоторым ножкам.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 11 2011, 02:36
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



почему у меня выскакивает предупреждение The user program and the bootloader overlap! Я загружаю программу через встроенный в конроллер Bootloader начиная с 0x080002000? В чем причина?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 11 2011, 08:09
Сообщение #9


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Это нормально, так должно быть.
Там в начале кода стоит трамплин на 2000 адрес, он перекрывается с бутлоадером. Бутлоадер защищен от перезаписи.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 11 2011, 08:22
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Т.е часть моей программы не записывается,которая перекрывается с bootloader'ом? Причем эта ошибка иногда выскакивает,а иногда нет.

В примере pm поменял частоту синхронизации. После заливки где можно осциллографом посмотреть,что он действительно стал 60 МГц?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 12 2011, 02:15
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Подскажите пожалуйста что конкретно надо поменять в примере PM, чтобы CPU тактировался 60 МГц и выдавал на одну ношку 8 МГц и где можно увидеть результат???


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 12 2011, 09:39
Сообщение #12


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Исправленный пример PM 2 для 60МГц. Выход 60МГц смотреть на ножке PA30 (для EVK1101).

Прикрепленный файл  pm_example2.zip ( 4.82 килобайт ) Кол-во скачиваний: 325
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 12 2011, 09:57
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Спасибо, уже сам сделал и вывел на PA30 7,5 МГц (8 МГц не получилосьделит на 2 в степени),сейчас скачаю и сверю для большего понимания, С пока еще далек для меня. Теперь хочу то же самое на PWM сделать. Каким образом это осуществить не подскажете?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 12 2011, 10:17
Сообщение #14


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Здесь не подскажу, смотрите пример на PWM.
Можно еще использовать второй осциллятор, если туда прицепить кварц на 8МГц.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 12 2011, 10:50
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Что осуществляет функция flashc_set_wait_state(1) в примере PM ?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 12 2011, 11:17
Сообщение #16


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



В даташите написано:
Цитата
Internal High-Speed Flash
-Single Cycle Access up to 30 MHz


Т.е. если процессор работает на частоте свыше 30МГц для работы с флэш-памятью необходимо вставлять цикл ожидания.
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 12 2011, 11:36
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Понятно теперь. Спасибо


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 13 2011, 02:24
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



У меня в проекте программа ставит "?" знак напротив строки #include <avr32/io.h> ,говоря что это не разрешенное включение. Как включить в Includes путь на io.h ?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 13 2011, 04:54
Сообщение #19


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



В AVR32 Studio в свойствах проекта: Project->Properties->C/C++ General->Paths and Symbols, вкладка Includes, там GNU C и добавить путь.
У меня, например, H:\Program Files\Atmel\AVR Tools\AVR32 Studio\plugins\com.atmel.avr.toolchains.win32.x86_3.1.0.201012011657\os\win32\x86\avr32\include
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 13 2011, 05:04
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



То что надо! sm.gif


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 13 2011, 07:45
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Никто не может подсказать нельзя ли реализовать тактирование PWM =60 МГц, а USART=12 МГц?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 14 2011, 10:24
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Подскажите пожалуйста как сделать параллельные порт из ножек с PB1 по PB9 ?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
Maximm
сообщение Apr 14 2011, 11:34
Сообщение #23


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

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



Цитата(dinar21 @ Apr 14 2011, 14:24) *
Подскажите пожалуйста как сделать параллельные порт из ножек с PB1 по PB9 ?


Вам порт ввода или вывода нужен или ввода/вывода?
И именно 9-битный?


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 15 2011, 02:32
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Мне нужно эти ножки на вывод. Они будут подключаться к 12 разрядному ЦАП к старшим 9 разрядам. Младшие 3 будут всегда повешены на 1.


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
Maximm
сообщение Apr 15 2011, 05:47
Сообщение #25


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

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



Цитата(dinar21 @ Apr 15 2011, 06:32) *
Мне нужно эти ножки на вывод. Они будут подключаться к 12 разрядному ЦАП к старшим 9 разрядам. Младшие 3 будут всегда повешены на 1.


Ну например так:
Код
AVR32_GPIO.port[1].oders = 0x000003FE;    \\ Конфигурируем соответствующие ножки на выход
AVR32_GPIO.port[1].gpers = 0x000003FE;    \\ Включаем эти ножки порта

AVR32_GPIO.port[1].ovr = 0x0000....            \\ Устанавливает состояние на этих выводах





--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 15 2011, 09:13
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Цитата(Maximm @ Apr 15 2011, 09:47) *
Ну например так:
Код
AVR32_GPIO.port[1].oders = 0x000003FE;    \\ Конфигурируем соответствующие ножки на выход
AVR32_GPIO.port[1].gpers = 0x000003FE;    \\ Включаем эти ножки порта

AVR32_GPIO.port[1].ovr = 0x0000....            \\ Устанавливает состояние на этих выводах

О,точно!!! Совсем уже голова не работает.
Осталось разобраться с прерываниями. wacko.gif


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 18 2011, 04:39
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Не подскажете как сделать прерывание от PWM ?


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение Apr 18 2011, 05:44
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



И что за регистр irq? найти не могу нигде

Сообщение отредактировал dinar21 - Apr 18 2011, 05:44


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
jasper
сообщение Apr 19 2011, 04:25
Сообщение #29


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



irq - общее обозначение запроса на прерывание. Такого регистра действительно нет.
Все необходимо для работы с прерываниями находится в драйвере контроллера прерываний INTC (intc.c и intc.h). Смотрите примеры для этого драйвера.
Go to the top of the page
 
+Quote Post
dinar21
сообщение May 6 2011, 04:23
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Объясните пожалуйста как пользоваться режимом отладки через JTAG II .


--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post
dinar21
сообщение May 16 2011, 10:53
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 8-02-11
Пользователь №: 62 788



Уважаемые форумчане подкажите пожалуйста,что не так в программе. Почему не работает USART ? Без части программы прерывания от PWM работает. А так GCLK0, PWM работает,а USART -нет

CODE

#include <avr32/io.h>
#include "compiler.h"
#include "board.h"
#include "power_clocks_lib.h"
#include "gpio.h"
#include "usart.h"
#include "pm.h"
#include "pwm.h"
#include "intc.h"

/* задается какой из универсальных генераторов синхросигналов будет использоваться
* в данном случае 0 .т.е. порт PA3
*/
# define EXAMPLE_GCLK_ID 0
# define EXAMPLE_GCLK_PIN AVR32_PM_GCLK_0_PIN
# define EXAMPLE_GCLK_FUNCTION AVR32_PM_GCLK_0_FUNCTION


# define EXAMPLE_TARGET_PBACLK_FREQ_HZ FOSC0 // PBA clock target frequency, in Hz
# define EXAMPLE_USART (&AVR32_USART1)
# define EXAMPLE_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
# define EXAMPLE_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
# define EXAMPLE_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
# define EXAMPLE_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
# define EXAMPLE_USART_CLOCK_MASK AVR32_USART1_CLK_PBA
# define EXAMPLE_PDCA_CLOCK_HSB AVR32_PDCA_CLK_HSB
# define EXAMPLE_PDCA_CLOCK_PB AVR32_PDCA_CLK_PBA

//# define EXAMPLE_PWM_PIN AVR32_PWM_0_0_PIN
//# define EXAMPLE_PWM_FUNCTION AVR32_PWM_0_0_FUNCTION
# define EXAMPLE_PWM_CHANNEL_ID 0

# define EXAMPLE_PWM (&AVR32_PWM)
# define EXAMPLE_PWM_IRQ AVR32_PWM_IRQ


bool front;
int shet;

/*! \ краткое USART обработчик прерывания.
*
* \ к сведению `__attribute__ ((__interrupt__)) '(под GNU GCC для AVR32) и
* `__interrupt" (под IAR Embedded Workbench для Atmel AVR32) с функцией
* атрибуты используются для управления `Rete 'инструкции.
*/
#if defined (__GNUC__)
__attribute__((__interrupt__))
#elif defined(__ICCAVR32__)
__interrupt
#endif



static void pwm_int_handler(void) // п/п формирования пилы
{
if (front==true) // признак спадающего фронта
{if (shet!=0x00000000) AVR32_GPIO.port[1].ovr = shet-- ; // уменьшаем с на 1 до тех пор пока оно не 0
else {front=false;
AVR32_GPIO.port[1].ovr = shet;
}
}
else // иначе признак возрастающего фронта
{if (shet!=0x00000200) AVR32_GPIO.port[1].ovr = shet++ ; // увеличиваем с на 1 до тех пор пока оно не 512
else {front=true;
AVR32_GPIO.port[1].ovr = shet;
}
}

}


static void local_start_highfreq_clock(void)
{
volatile avr32_pm_t* pm = &AVR32_PM;
/* \Примечание во всех расчетах предположить, что Osc0 частота 12 МГц. */

pm_switch_to_osc0(pm, FOSC0, OSC0_STARTUP); // переключение тактирования на Osc0.

/* Установка ФАПЧ0 на Osc0, Mul = 9, делитель на 1, lockcount = , то есть. 12Mhzx10 = 120MHz/2=60МГц выходной */

pm_pll_setup(pm,
0, // разрешение использования ФАПЧ0
9, // MUL=10 умножение частоты кварца на 10
1, // DIV=1 деление частоты на 1
0, // Выбираем Osc0/PLL0 или Osc1/PLL1
16); // lockcount in main clock for the PLL wait lock

/*
Эта функция устанавливает опции ФАПЧ.
*pm Base address of the Power Manager (i.e. &AVR32_PM)
pll PLL number 0
pll_freq Set to 1 for VCO frequency range 80-180MHz, set to 0 for VCO frequency range 160-240Mhz.
pll_div2 Divide the PLL output frequency by 2 (this settings does not change the FVCO value)
pll_wbwdisable 1 Disable the Wide-Bandith Mode (Wide-Bandwith mode allow a faster startup time and out-of-lock time). 0 to enable the Wide-Bandith Mode.
*/
/* Выходная VCO частта ФАПЧ 120 MHz. Мы делим ее на 2 с pll_div2=1. Это позволяет разрешить дальше тактировать CPU на 60 MHz */
pm_pll_set_option(pm, 0, 1, 1, 0);

/* Разрешение ФАПЧ0 */
/*
void pm_pll_enable(volatile avr32_pm_t* pm,
unsigned int pll) {
*/
pm_pll_enable(pm,0);

pm_switch_to_clock(pm, AVR32_PM_MCSEL_PLL0); /* Переключение тактовой частоты процессора на 60 MHz */

}
static void local_enable_gclk_on_gpio(volatile avr32_pm_t* pm)
{
int gc = EXAMPLE_GCLK_ID;
/* установка на gc (вданном случае PA03) на прием от ФАПЧ и деление на 2^3=8 */
pm_gc_setup(pm, gc, 1, 0, 1, 3);

/* разрешение gc */
pm_gc_enable(pm,gc);
/* Назначение gc на выход GPIO PA3 */
gpio_enable_module_pin(EXAMPLE_GCLK_PIN, EXAMPLE_GCLK_FUNCTION);
}



int main(void)
{
static const gpio_map_t USART_GPIO_MAP =
{
{EXAMPLE_USART_RX_PIN, EXAMPLE_USART_RX_FUNCTION},
{EXAMPLE_USART_TX_PIN, EXAMPLE_USART_TX_FUNCTION}
};

// USART options.
static const usart_options_t USART_OPTIONS =
{ .baudrate = 172800,
.charlength = 8,
.paritytype = USART_NO_PARITY,
.stopbits = USART_1_STOPBIT,
.channelmode = USART_NORMAL_CHMODE
};


volatile avr32_pm_t* pm = &AVR32_PM;

// Настройка Osc0 в кристалле режиме (т.е. использование внешнего источника кристалла, с
// частота FOSC0) с соответствующим время запуска затем переключиться Главные часы
// источник Osc0.
pcl_switch_to_osc(PCL_OSC0, FOSC0, OSC0_STARTUP);

// Отключить все прерывания
Disable_global_interrupt();

pwm_opt_t pwm_opt; // PWM option config.
avr32_pwm_channel_t pwm_channel = { .ccnt = 0 }; // к.
// номер канала и, например, используется в ряде функций.
// Это определяется как локальная переменная для простоты использования.
unsigned int channel_id;

channel_id = EXAMPLE_PWM_CHANNEL_ID;
//gpio_enable_module_pin(EXAMPLE_PWM_PIN, EXAMPLE_PWM_FUNCTION);

// Назначение GPIO для USART.
gpio_enable_module(USART_GPIO_MAP,
sizeof(USART_GPIO_MAP) / sizeof(USART_GPIO_MAP[0]));
// Инициализация USART в режиме RS232.
usart_init_rs232(EXAMPLE_USART, &USART_OPTIONS, EXAMPLE_TARGET_PBACLK_FREQ_HZ);

// конфигурация PWM controller .
pwm_opt.diva = AVR32_PWM_DIVA_CLK_OFF;
pwm_opt.divb = AVR32_PWM_DIVB_CLK_OFF;
pwm_opt.prea = AVR32_PWM_PREA_MCK;
pwm_opt.preb = AVR32_PWM_PREB_MCK;

pwm_init(&pwm_opt);

pwm_channel.CMR.calg = PWM_MODE_LEFT_ALIGNED; // режим канала.
pwm_channel.CMR.cpol = PWM_POLARITY_LOW; // полярность канала.
pwm_channel.CMR.cpd = PWM_UPDATE_DUTY; // не используется в начальное время.
pwm_channel.CMR.cpre = AVR32_PWM_CPRE_MCK_DIV_32; // канальный предделитель.
pwm_channel.cdty = 6; // рабочий цикл канала, должен быть < CPRD.
pwm_channel.cprd = 12; // период канала.
pwm_channel.cupd = 0; // обновление канала здесь не используется.
// С такими настройками, период выходного сигнала будет :
// (12000000/32)/12 == 31250 Hz ==32 мкс
// prescaler == 32, period == 12.

// Инициализация векторов прерываний.
INTC_init_interrupts();
// Регистрация USART обработчик прерывания на контроллер прерываний.
// usart_int_handler является обработчик прерывания для регистров
// EXAMPLE_USART_IRQ является IRQ из обработчика прерывания для регистров
// AVR32_INTC_INT0 является прерывание уровень приоритета назначить группу
// это IRQ.
// недействительными INTC_register_interrupt (__int_handler обработчик, неподписанные IRQ Int, неподписанные int_level Int);
INTC_register_interrupt(&pwm_int_handler, EXAMPLE_PWM_IRQ, AVR32_INTC_INT0);

// Включить PWM прерывания.
EXAMPLE_PWM->ier = 1;

AVR32_GPIO.port[1].oders =0x000003FE; // Конфигурируем соответствующие ножки на выход
AVR32_GPIO.port[1].gpers =0x000003FE; // Включаем эти ножки порта

/* Начало высокой тактовой частоте и переключаться Main Clock с этой высокой тактовой частоты */
local_start_highfreq_clock();
/* Настройка общих часы с высокой тактовой частотой и выхода его на GPIO PIN */
//local_start_gc();
local_enable_gclk_on_gpio(pm);// включение внешнего тактирования 7,5 МГц на ножку

Enable_global_interrupt(); //разрешение прерываний

pwm_channel_init(channel_id, &pwm_channel); // Установить конфигурацию каналов 0.

pwm_start_channels(1 << channel_id); // стартовать канал 0.


// **AT32UC3B_USART**
while(1){
int c=0;
usart_read_char(EXAMPLE_USART, &c);
// Опрос канала 1
if( c == 0x30 )
usart_write_char(EXAMPLE_USART, 0x2B);
if( c == 0x31 )
usart_write_char(EXAMPLE_USART, 0x02);
// Опрос канала 2
if( c == 0x32 )
usart_write_char(EXAMPLE_USART, 0x09);
if( c == 0x33 )
usart_write_char(EXAMPLE_USART, 0x03);
};
}



--------------------
Глупых вопросов не бывает, бывают глупые ответы!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th August 2025 - 23:31
Рейтинг@Mail.ru


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