Изучаю таймеры в Attiny13, но не получается.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Доброго времени суток! Тем по изучению таймеров много, они повторяются но не достаточно понятны. У Tiny13 два 8-битных таймера и оба могут работать в ШИМ модуляции. Но как их запустить не пойму. Начал писать программу - ниже

Код: Выделить всё

#include <avr/io.h>
#define F_CPU 4800000UL
#include <util/delay.h>
  
int a;
int b;
int c;

int main()
{
SREG|=(1<<7);
TCCR0A|=(0<<WGM02);
TCCR0A|=(1<<WGM01);
TCCR0A|=(1<<WGM00);

TCCR0A|=(0<<CS02);
TCCR0A|=(0<<CS01);
TCCR0A|=(1<<CS00);

OCR0A=255;

DDRB=0b00000001;


while(1);
	{	
		
	}
}

что с ней дальше делать не знаю. Мне нужно разъяснение как работает таймер с примерами, но с короткими примерами. Иначе не пойму. Спасибо.
Реклама
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение radio-kot »

Удобно настраивать таймеры специальным мастером компилятора - вот пример настройки таймера AVR с картинками - www.proavr.narod.ru/z6.htm
Будете проходить мимо- проходите!
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18669
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ARV »

king-live писал(а):У Tiny13 два 8-битных таймера и оба могут работать в ШИМ модуляции. Но как их запустить не пойму.
начните с изучения архитектуры вашего МК - в attiny13 ОДИН 8-битный таймер
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Извиняюсь. написал необдуманно один 8-битный таймер и два выхода работающих в режиме ШИМ.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ChipKiller »

ARV писал(а):начните с изучения архитектуры вашего МК
... и языка С

Код: Выделить всё

TCCR0A|=(0<<WGM02);
TCCR0A|=(1<<WGM01);
TCCR0A|=(1<<WGM00);
не стоит писать 3 команды, там где достаточно одной TCCR0A|=(0<<WGM02)+(1<<WGM01)+(1<<WGM00); или 1Кб флеша хватит только на инициализацию.

ЗЫ. причем (0<<WGM02) не имеет смысла, так как идет не запись, а лог. OR c предыдущим содержимым
Реклама
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

не стоит писать 3 команды, там где достаточно одной TCCR0A|=(0<<WGM02)+(1<<WGM01)+(1<<WGM00);
Если учебники позволялибы и училибы так быстро писать на С, разве возниклабы эта тема. Я думаю в книгах излагают слишком абстрктно темы, "типа если не дурак то поймёш" Но если человек учится и делает первые шаги в этом направлении - то нужно описывать каждую точку, каждую черту, каждую строку, для чего она служит.
Или как многие советуют, изучать архитектуру МК. Ну изучил его, знаю каждую строчку, а как собрать эти знания воедино, чтобы родилась программа. Вспомните как Нас мамы учили когда мы были маленькими, рассказывая и показывая. Мне форумы здорово помогли, кстати 95% знаний получал именно от по помощи ребят. Хотя книг у меня очень много, но то как написанно TCCR0A|=(0<<WGM02)+(1<<WGM01)+(1<<WGM00); - это вижу впервые. Лучше уж идти по подсказке, чем идти в никуда. Я так думаю.
Поэтому помогите пожалуйста, я сам не разбирусь. Спасибо.
Реклама
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение radio-kot »

Помогаю: Пример настройки таймера AVR с картинками и на русском языке - http://www.proavr.narod.ru/z6.htm
Будете проходить мимо- проходите!
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ChipKiller »

king-live писал(а):Если учебники позволялибы и училибы так быстро писать на С, разве возниклабы эта тема.
..... учебники дают базу, а учится человек на своих ошибках. Лучший документ для изучения - datasheet, из книжек в качестве справочника лучшие ИМХО книги Евстифеева.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение radio-kot »

Получилось ?
Будете проходить мимо- проходите!
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Пока не получилось! Множество документов паралельно приходится читать, сопостовлять готовый код, с тем что хочется написать. С английским не в ладах даже переводчик не спасает. Всё в общих чертах. Так что это надолго.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ChipKiller »

king-live писал(а):Множество документов паралельно приходится читать, сопостовлять готовый код, с тем что хочется написать. С английским не в ладах даже переводчик не спасает. Всё в общих чертах. Так что это надолго.
... может сложиться впечатление, что работа ШИМа, что то из ряда вон.... если не в ладах с английским - где читать уже писал. Заполнить всего то пару значений ... это надолго?
Вложения
tiny13pwm.rar
(16.23 КБ) 486 скачиваний
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Заполнить ничего не смог, так как это програмку ICC
Application Builder не смог скачать. Хотя по описанию действительно вроде как легко. но раз нет проги то и далее делать нечего, а вот последний архивный файл дал толчок. Спасибо. Откуда скачать можно нормальную ICC
Application Builder.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ChipKiller »

king-live писал(а):Откуда скачать можно нормальную ICC Application Builder.
... не считаю Application Builder нормальной, а в архиве программа для CV AVR.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение radio-kot »

king-live писал(а): Откуда скачать можно нормальную ICC Application Builder.
Попробуйте почитать - там кроме картинок есть еще и текст !
Будете проходить мимо- проходите!
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Доброго времени суток! Снизу код, который мне прислали и с которым я хочу разобрать, хотя в CV я не работаю но попробую перенести на WinAVR.

Код: Выделить всё

#include<delay.h>
#include <tiny13.h> 

#define  CS00 0
#define  COM0A1 7
#define  COM0B1 5
#define  WGM00 0
#define  WGM01 1
 
#define  Pwm_A 0
#define  Pwm_B 1

#define  uchar unsigned char

uchar cnt;

main(){  
 // настройка портa
    DDRB=(1<<Pwm_A)|(1<<Pwm_B);
    PORTB=0x00;
 // настроим TC
    GTCCR=0;
    TCNT0=0;
 
    TCCR0A=(1<<COM0B1|1<<COM0A1|1<<WGM01|1<<WGM00); 
    TCCR0B=(1<<CS00);  
                                          
new_pwm:    
    delay_ms(1);    
    OCR0A=cnt;
    OCR0B=cnt+0x80;  
    cnt++;
    goto new_pwm;
    
   } 
Для чего нужны эти макросы, если эти макросы используются для настройки портов и нигде более? Порты можно настроить и подругому (стандартно).

Код: Выделить всё

#define  Pwm_A 0
#define  Pwm_B 1
И следующие строки, я не совсем понял что это такое. Что такое "uchar cnt"?

Код: Выделить всё

#define  uchar unsigned char

uchar cnt;
Спасибо!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение radio-kot »

Строкой выше определено что это такое.

Язык Си для микроконтроллеров - www.proavr.narod.ru/05.htm
Будете проходить мимо- проходите!
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Это я уже читал несколько раз статьи хорошие позновательные? Я не понял следующую строчку.
uchar cnt;
С помошью #define - uchar заменил unsigned char. А дальше - разве не должно быть так uchar=cnt;
Вот теперь сможете мне без ссылок на сайты, объяснить что и где я прав и не прав.
Спасибо!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18669
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ARV »

king-live писал(а):Это я уже читал несколько раз статьи хорошие позновательные? Я не понял следующую строчку.
uchar cnt;
С помошью #define - uchar заменил unsigned char. А дальше - разве не должно быть так uchar=cnt;
Вот теперь сможете мне без ссылок на сайты, объяснить что и где я прав и не прав.
Спасибо!
uchar - это ТИП, ему нельзя что-либо присваивать. cnt - это ПЕРЕМЕННАЯ типа uchar. запись uchar cnt; и обозначает объявление переменной типа uchar, т.е. в этот момент в ОЗУ выделяется нужное количество ячеек для переменной. количество ячеек определяется типом - в данном случае это 1 байт, т.е. одна ячейка. по умолчанию эта ячейка будет обнулена, но если вам надо, чтобы с самого рождения переменная cnt содержала какое-то ненулевое значение, можно сделать это в момент ее объявления: uchar cnt = 125; - в этом случае ячейка в ОЗУ не только будет выделена, но еще в нее будет записано число 125.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение king-live »

Спасибо!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18669
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Изучаю таймеры в Attiny13, но не получается.

Сообщение ARV »

king-live писал(а):Спасибо!
вам наверняка поможет http://www.simple-devices.ru/articles/7 ... avr-studio
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»