roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

regenerator » 24 авг 2008, 18:00

=DeaD= писал(а):А даташит пробовали читать?

Я што похож на англичанина? :)
=DeaD= писал(а): И вообще МК какой-то уже выбрали? Потому что то, что вы сейчас спрашиваете в коде может быть прописано уже только под конкретный МК.

МК ATmega32. Ошибку я свою понял - мне нужны прерывания. Даташиты я читать не умею.

Даташит на Русском языке возьмите на - http://avr123.nm.ru/02.htm
"Устройство AVR"

"Прерывания в AVR" - http://avr123.nm.ru/03.htm

Re: МикроКонтроллеры начинающим - общие вопросы

=DeaD= » 24 авг 2008, 19:34

regenerator писал(а):
=DeaD= писал(а):А даташит пробовали читать?

Я што похож на англичанина? :)

Уж не знаю к сожалению, к счастью ли - но если вы хотите в этой области знаний чем-то заниматься, то вам придётся стать англичанином, чтобы читать эти самые даташиты :) беглое чтение на техническом английском никто еще не отменял.

Re: МикроКонтроллеры начинающим - общие вопросы

SSG » 24 авг 2008, 19:38

Читайте книжку Евстифеева про микроконтроллерЫ атмега и атини. Там практически переводы даташитов. Она по сети и в электронном виде валяется.

Книги можно скачать на http://avr123.nm.ru
< добавил avr123.nm.ru >

Re: МикроКонтроллеры начинающим - общие вопросы

Кирилл » 14 сен 2008, 13:05

юзаю Tiny2313 на 16Mhz. Пытаюсь запустить ШИМ на Timer1 с такими параметрами: 62,5кГц, 47%. собсно вопрос в следующем: какие значения и каким регистрам надо придать чтобы все заработало?

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 14 сен 2008, 14:15

Код: Выделить всёРазвернуть
/* clear OC1A on Compare Match, set OC1A at TOP */
TCCR1A =   _BV(COM1A1);
/* fast PWM, 8 bit */
TCCR1A |=  _BV(WGM10);
TCCR1B = _BV(WGM12) ;
/* no prescaling */
TCCR1B |= _BV(CS10) ;
/* Duty cycle 120/256 = 0,46875 */
OCR1 = 120;


Вроде так. А почему именно Timer1? Он же будет использоваться в 8-битном разрешении, хватило бы и Timer0 .

Re: МикроКонтроллеры начинающим - общие вопросы

Duhas » 14 сен 2008, 15:29

а можно в 16-ти битном и повысить точность скважности :crazy:

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 14 сен 2008, 15:33

Нельзя. 16000000/62500=256

Re: МикроКонтроллеры начинающим - общие вопросы

Кирилл » 15 сен 2008, 00:03

спасибо за ответ, однако это не совсем то что я хотел услышать. дело в том что я пишу на васике и с синтаксисом Си не знаком к сожалению, поэтому мне желательно знать просто регистры и величины :)

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 15 сен 2008, 08:40

Ну, вот тебе регистры и значения
Код: Выделить всёРазвернуть
TCCR1A = 129;
TCCR1B = 9;
OCR1AH = 0;
OCR1AL = 120;

Только потом в таком коде без бутылки не разберешься - фиг его знает, что там эти цифры значат. Да это вроде и не васиковский метод - напрямую в регистры писать, там же всякие Config есть

Re: МикроКонтроллеры начинающим - общие вопросы

Кирилл » 15 сен 2008, 18:07

Премного благодарен :) просто интересно попробовать выставить регистры напрямую без конфигов, ибо что то у меня с ними не получается ШИМ который нужен.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 15 сен 2008, 19:52

Кирилл писал(а): у меня с ними не получается ШИМ который нужен.

Очень удобный мастер конфигурации МК в компиляторе ICC - посмотри http://avr123.nm.ru/z6.htm

Изображение

Re: МикроКонтроллеры начинающим - общие вопросы

Doniak » 28 сен 2008, 16:05

програмирую в CVAVR на Си. Как можно десятичное число разделить на сотни десятки еденицы и записать их в разные переменые? Например дано А=173 получаем Б=1 В=7 Г=3 ?

Re: МикроКонтроллеры начинающим - общие вопросы

Montoya » 28 сен 2008, 17:13

Может использовать функцию получения остатка от деления?

Re: МикроКонтроллеры начинающим - общие вопросы

Vooon » 28 сен 2008, 17:38

Способ "в лоб"
Код: Выделить всёРазвернуть
char abc = 173;
printf("abc: %d %d %d\n", abc / 100, (abc % 100) / 10, abc % 10);

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 28 сен 2008, 18:09

а для последнего числа достаточно abc % 10 ?


Rambler\'s Top100 Mail.ru counter