ATmega48 : как запустить таймер?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
tss
Родился
Сообщения: 8
Зарегистрирован: Чт окт 19, 2006 11:11:31

Сообщение tss »

подскажите как запустить таймер в ATmega48
ldi Temp,0
out TCNT0,Temp
ldi Temp,1
out TIMSK0,Temp
ругается VMLAB на TIMSK0 (illegal argument type or count)
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

КАКЫЙ таймер? Там их аж 4! В обучалке довольно понятно всё расписано...
А ругается на "TIMSK0", потому в inc-файле наверно не прописан регистр TIMSK0... :wink:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

А библиотека ATmega48 подключена в исходнике ?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Tohey писал(а):КАКЫЙ таймер? Там их аж 4!
По тексту АСМа таймер 0 очевидно.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

:)))
Я не встречал TIMSK0 ни где, этот регистр всего один, и обычно прописан в inc-файле как - TIMSK.
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

А насраевается он просто, в TCCR задается тактовый сигнал, TCNT - счетчик, в OCR записывается число для сравнения, компаратор. А TIMSK - регистр маски прерываний (кажись так он называется), им включаются прерывания компараторов, таймеров и пр. СМ. обучалку "Таймеры и каунтеры. Бегущий огонек"
Реклама
tss
Родился
Сообщения: 8
Зарегистрирован: Чт окт 19, 2006 11:11:31

Сообщение tss »

решения нет, вопрос остаётся в силе,
не принципиально какой таймер, c ATmega8 нет проблем, а вот с М48 непонятно, вроде как в даташит но он на ненашинском к сожалению!

.include "C:\VMLAB\include\m48def.inc"

.def temp =r16

.cseg
.org 0
rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp PCINT0
rjmp PCINT1
rjmp PCINT2
rjmp WDT
rjmp TIM2_COMPA; Timer2 Compare Handler
rjmp TIM2_COMPB
rjmp TIM2_OVF ; Timer2 Overflow Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_COMPB ; Timer1 CompareB Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_COMPA ; Timer1 CompareA Handler
rjmp TIM0_COMPB ; Timer1 CompareB Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp SPI_STC ; SPI Transfer Complete Handler
rjmp USART_RXC ; USART RX Complete Handler
rjmp USART_UDRE ; UDR Empty Handler
rjmp USART_TXC ; USART TX Complete Handler
rjmp ADC ; ADC Conversion Complete Handler
rjmp EE_RDY ; EEPROM Ready Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp TWI ; Two-wire Serial Interface
rjmp SPM_RDY ; Store Program Memory Ready


EXT_INT0:
EXT_INT1:;INT_1:
WDT:
TIM2_COMPA:
TIM2_COMPB:
TIM2_COMP:
TIM2_OVF:
TIM1_CAPT:
Tim1_compA:
TIM1_COMPB:
;TIM1_OVF:
TIM0_COMPA:
TIM0_COMPB:
;TIM0_OVF:
SPI_STC:
USART_RXC:
USART_UDRE:
USART_TXC:
ADC:
EE_RDY:
ANA_COMP:
TWI:
SPM_RDY:
RETI
RESET:
;*****************************************************
ldi Temp,LOW(RamEnd)
out SPL,Temp ;
ldi Temp,HIGH(RamEnd)
out SPH,Temp ;
;*****************************************************
;*****************************************************

ldi Temp,0
out TCNT0,Temp

ldi Temp,0b00000001
out TCCR0B,Temp

ldi Temp,1;0b00000001

ldi Temp,0b00000001
out TIMSK0,Temp

sei
TIM0_OVF:
reti
;*********************************************************

TIM1_OVF:
reti
;*********************************************************
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

tss писал(а):подскажите как запустить таймер в Mega48
В каком режиме ?

Запустите и настройте мастером CVAVR или ICC скомпильте и посмотрите АСМ листинг.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
tss
Родился
Сообщения: 8
Зарегистрирован: Чт окт 19, 2006 11:11:31

Сообщение tss »

Решение вопроса очень простое:
ldi Temp,11
out TCNT0,Temp
ldi Temp,0b00000001
out TCCR0B,Temp
out TCCR0A,Temp

sts TIMSK0,Temp
sei
Вопрос закрыт. :)))
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Теперь всем все ясно.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке

Сообщение Мышонок »

tss и все остальные! Длинные тексты программ и т.п. оформляйте вложенным файлом - иначе подобные сообщения будут удалятся. :evil:
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Контактная информация:
Родился
Сообщения: 1
Зарегистрирован: Ср июн 13, 2007 11:13:50

Сообщение Агроном »

tych писал(а):Теперь всем все ясно.
Для большей ясности цитата из ДШ
===============
The ATmega48/88/168 is a complex microcontroller with more peripheral units than can be supported within the 64 locations reserved in the Opcode for the IN and OUT instructions. For the Extended I/O space from 0x60 - 0xFF in SRAM, only the ST/STS/STD and LD/LDS/LDD instructions can be used.
===============
Пусть всегда будет солнце.
Закрыто

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