Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.86.134] |
|
Сообщ.
#1
,
|
|
|
Хочу научится работать с таймером 16й атмеги. Нигде не могу найти информацию как с ним работать, ДШ не взлетает, надо что то попрактичней, статейку какую нить. Помогите, пожалуйста, бедному студенту!
|
Сообщ.
#2
,
|
|
|
Цитата COOLibin @ Хочу научится работать с таймером 16й атмеги. Марку скажи по нормальному. Цитата COOLibin @ ДШ не взлетает Почему??? Как раз рулит. |
Сообщ.
#3
,
|
|
|
Сообщ.
#4
,
|
|
|
Цитата COOLibin @ Хочу научится работать с таймером 16й атмеги А что сложного? Просто выставляешь делитель, отличный от нуля и он автоматом начинает считать. Так же не забывай про порядок чтения/записи мл. и ст. байтов (если ты использ. 16разрядный таймер и пишешь на асме). Можно так же включать прерывания по переполнению, по совпадению и пр. но тут не забудь глобально разрешить прерывания (sei). Так же есть ШИМы.. Но это уже потом, как разберешься с основами |
Сообщ.
#5
,
|
|
|
Цитата e-moe @ А что сложного? Просто выставляешь делитель, отличный от нуля и он автоматом начинает считать.... свои пять копеек.. при прошивки - выставить правильно фьюзы...если нужен делитель - то правильно выставить делитель тактовой...так же внешний, либо внутренний генератор...(многое зависит от проца, в 16 лень заглядывать - сорьки)... вообще то в даташите - самая правильная инфа...тем более атмел вроде редко косячит с доками... с уважением (круглый) |
Сообщ.
#6
,
|
|
|
Вот отрывок рабочего кода из реально работающего устройства на меге16. (компилятор avr-gcc):
/* main.c: инициализация */ /* 16 bit timer - master clock source counter */ TCCR1B = 1 << CS10; /* full F_CPU clock */ TIMSK = 1 << TOIE1; /* intr. on overflow */ /* interrupt.S: обращение к регистрам таймера */ .global SIG_INTERRUPT0 /* GPS 1 PPS service routine */ SIG_INTERRUPT0: ; 4 /* по внешнему прерыванию */ push r16 ; 2 in r16, _SFR_IO_ADDR (TCNT1L) ; 1 /* читаем младший байт счётчика таймера */ sbi ADC_CTRL_PORT, AD_SCLK_BIT ; 2 /* запускаем начало работы внешнего АЦП */ sts clock_cnt + 5, r16 ; 2 /* сохраняем младший байт в память */ in r16, _SFR_IO_ADDR (TCNT1H) ; 1 /* читаем старший байт счётчика */ sts clock_cnt + 4, r16 ; 2 /* сохраняем в память */ ; .... reti |
Сообщ.
#7
,
|
|
|
antigen, и почему все еще используют старый синтаксис описания векторов?
|
Сообщ.
#8
,
|
|
|
$avr-gcc --version avr-gcc (GCC) 3.4.6 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
Сообщ.
#9
,
|
|
|
и? не понял намека..
|
Сообщ.
#10
,
|
|
|
От версии к версии соглашения о именовании обработчиков меняются. Чо уж тут непонятного. В свежих версиях avr-gcc они иначе называется. Хотя это даже скорее относится не к версии avr-gcc, а к avr-libc.
А уж к текущей теме про таймеры почти никак не относится. |