| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Програмирование таймера. |
| Автор: Mura-vey 5.3.2005, 18:14 |
| Скачал апликейшен ноутс AVR130 про програмирование таймера. Там приводится программа .include "m8535def.inc" .cseg .org 0 ; rjmp init ; rjmp no_vec rjmp PRER rjmp no_vec init: LDI R16,0X02 OUT TCCR0,R16 LDI R16,0X02 OUT TIMSK,R16 ldi r16,(1<<CS02)|(1<<CS00) out TCCR0,r16 ldi r16,1<<TOV0 out TIFR,R16 ldi R16,1<<TOIE0 out TIMSK,r16 LDI R16,0XFF out DDRA,r16 out DDRB,r16 out DDRC,r16 sei ; ldi r16,0xFE ; out tcnt0,r16 main: NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP rjmp main PRER: PUSH R16 IN R16,SREG PUSH R16 IN R16,PORTB COM R16 OUT PORTB,R16 OUT PORTA,R16 POP R16 out SREG,r16 POP R16 RETI no_vec: RETI .EXIT Прогаю под ATmega8535. При пересчёте на частоту 1 МГц светики должны моргать с частотой 1,5-2 Гц. Но ничего не работает вообще. Может кто объяснит в чём дело? |
| Автор: bzx 5.3.2005, 18:29 |
| У Вас не включены глобальные прерывания. Бит I регистра SREG должен быть =1. |
| Автор: Mura-vey 5.3.2005, 18:47 |
| bzx Спасибо! А поточнее нельзя, где и какую команду вставить. Заранее благодарен! |
| Автор: bzx 5.3.2005, 18:51 |
| Для Вас Выставить бит I в регистре SREG проблемотично? Например, можно сделать так LDI R16,0X80 OUT SREG,R16 и поставить до main |
| Автор: Mura-vey 5.3.2005, 19:08 |
| Всёравно не работает. Добавлено @ 19:10 |
| Автор: PILOT 5.3.2005, 23:56 |
| А откуда клоки зафьюзил? СУВ. |
| Автор: Mura-vey 6.3.2005, 14:36 |
| PILOT По русски нельзя? Я русский человек. Добавлено @ 14:38 bzx Вообще я включил глобальные прерывания (чё-то я стрормозил) командой sei. Зачем так геморно их включать? |
| Автор: PILOT 7.3.2005, 21:17 |
| Что есть источник тактовых импульсов? СУВ. |
| Автор: bzx 9.3.2005, 14:08 |
| 1. Убедитесь в симуляторе, что Ваша программа работает, т.е. прерывания происходят и, самое главное, изменяются состояния портов. Если с этим всё ok, далее 2. проверьте конфигурацию (биты конфигурации) mcu 3. питание. 4. сигнал сброса 5. генерация кварца (проверить с помощью осциллографа) |
| Автор: PILOT 10.3.2005, 00:40 |
| Кста, ты уверен что ты пральна частоты рассчитал? А если серьезно, то проверь таблицу прерываний... это раз. Во-вторых, так бездумно копировать код не стОит! Зачем ты повторяешь код (инициализация таймеров), зачем столько нопов? Разберись с архитектурой, а? (без обид) Готов ответить на любые вопросы. СУВ. |
| Автор: jimmi 29.3.2005, 10:28 |
| |
| Автор: PILOT 29.3.2005, 19:19 |
| Если серьезно, то я бы руки оторвал тому кто пишет AN для AVR. Жуть... СУВ. |