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

 
 
> использование Timer A для генерации частоты
cornflyer
сообщение Mar 27 2008, 19:21
Сообщение #1


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

Группа: Свой
Сообщений: 166
Регистрация: 11-07-06
Из: Dubna
Пользователь №: 18 729



Надо сгенерить на выходе P1.2 частоту 38000 Гц
Кварц - внешний, 3.6 МГц
код:

// timer_A1

TACTL = 0 ; // stop

P1DIR |= BIT2 ; // output
P1SEL |= BIT2 ; // Bit = 1: Peripheral module function is selected for the pin

TACCR1 = 48 ; //
TACCTL1 = OUTMOD_4; // toggle

TACTL = BIT4 | BIT9 ;
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Mar 27 2008, 20:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Код
TACTL=TASSEL_2|ID_0|TACLR;    //TACLK=SMCLK/1=3.6МГц
TACCR0=94;                    //период = (unsigned int)(3600000.0f/38000.0f+0.5f)-1
TACCR1=47;                    //полупериод = период / 2
TACCTL0=0;
TACCTL1=OUTMOD_3;             //установка(EQU1)/сброс(EQU0)
P1DIR|=BIT2;                  //P1.2 выход
P1SEL|=BIT2;                  //P1.2 выход TA1
TACTL|=MC_1;                  //режим счета CountUp

Частота на выходе должна получится 37894,7Гц, отклонение от номинальной около -0,3%
Не забудьте правильно проинициализировать источники тактирования, чтобы частота SMCLK была именно от кварцевого генератора 3,6МГц.
Go to the top of the page
 
+Quote Post
cornflyer
сообщение Apr 1 2008, 08:35
Сообщение #3


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

Группа: Свой
Сообщений: 166
Регистрация: 11-07-06
Из: Dubna
Пользователь №: 18 729



мне нужно по нажатию кнопки включать/выключать генерацию частоты
как это сделать?
Go to the top of the page
 
+Quote Post
msalov
сообщение Apr 1 2008, 08:58
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(cornflyer @ Apr 1 2008, 11:35) *
мне нужно по нажатию кнопки включать/выключать генерацию частоты
как это сделать?

Вероятно по прерыванию от кнопки включать/выключать таймер
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 1 2008, 09:02
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(gotty @ Apr 1 2008, 11:58) *
Вероятно по прерыванию от кнопки включать/выключать таймер

Не, некрасиво. Таймер может для полезных целей пригодиться, пусть себе считает.
Опять же, непонятно какое состояние будет на выходе после остановки таймера - 0 или 1


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- cornflyer   использование Timer A для генерации частоты   Mar 27 2008, 19:21
|- - MrYuran   Цитата(cornflyer @ Apr 1 2008, 11:35) мне...   Apr 1 2008, 08:56
- - cornflyer   сделал включение ))))) выключение почему-то не раб...   Apr 2 2008, 17:19
- - MrYuran   Цитатано когда я еще раз нажимаю на кнопочку - дио...   Apr 3 2008, 05:24
- - CAHTA_1939   у меня тут задачка, может подскажете как лучьше сд...   Apr 4 2008, 16:57
|- - CAHTA_1939   у меня тут задачка, может подскажете как лучьше сд...   Apr 4 2008, 18:00
|- - rezident   Цитата(CAHTA_1939 @ Apr 4 2008, 22:57) ну...   Apr 4 2008, 18:01
|- - CAHTA_1939   Цитата(rezident @ Apr 4 2008, 21:01) А чт...   Apr 4 2008, 18:04
- - rezident   Лучше (проще) все же оперировать битом OUT в регис...   Apr 4 2008, 17:59
- - rezident   Ну а в чем проблема-то? ТаймерА тактируется от 1-2...   Apr 4 2008, 18:23
- - cornflyer   Приведенный ниже код - работает!!!...   Apr 5 2008, 10:25
- - cornflyer   разобрался... прерывание кнопки висело на том же п...   Apr 5 2008, 11:54


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

 


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


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