Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 03.12.2011, 23:56  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Ладно с этим разобрался.
Почему D1 и D3 работают синхронно? Может TMR2 не правильно настроил?
Схема и программа во вложении.
Вложения:
Тип файла: rar 22.rar (39.0 Кб, 36 просмотров)
Реклама:
Slava-martyn вне форума  
Непрочитано 04.12.2011, 01:36  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Slava-martyn, у Вас программа написана с избытком (флаги дублируют друг друга). Об этом здесь уже говорилось.
В данном случае прерывания можно вообще не включать, а только контролировать флаги этих прерываний. Ну, в общем, после оптимизации Вашей программы вот, что получилось.
PHP код:
MAIN    
          clrwdt
          movlw    
b'00001000'
LED0
          btfss    INTCON
,     T0IF
          
goto     LED1
          iorlw    
b'00000001'
          
bcf      INTCON,     T0IF
LED1
          btfss    PIR1
,       TMR1IF
          
goto     LED2
          iorlw    
b'00000010'
          
bcf      PIR1,       TMR1IF
LED2
          btfss    PIR1
,       TMR2IF
          
goto     LED_END
          iorlw    
b'00000100'
          
bcf      PIR1,       TMR2IF
LED_END    
          xorwf    LED
,        W
          movwf    LED
          movwf    PORTD
          
goto     MAIN
END 
alvadep вне форума  
Непрочитано 04.12.2011, 12:48  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Почему D1 и D3 работают синхронно?
Потому, что у TMR0 коэффициент деления 256 и флаг T0IF будет устанавливаться через 256*256=65536 циклов и флаг TMR2IF будет устанавливаться через 65536 циклов (предделитель - 16, постделитель - 16, получаем 16*16*256=65536).
alvadep вне форума  
Непрочитано 04.12.2011, 12:59  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Эх хотел ведь написать... Избыточность нужна мне для наглядности, и сокращать программу не требуется. Вопрос в том, почему я не могу выставить другой период таймера №2 в МК? Почему он работает синхронно с TMR0?
Опередили
Да!
Но попробуйте его изменить, вот так например:
MOVLW b'00111001' ;
MOVWF T2CON ;
D1 и D3 также работают синхронно... Где-то в другом ошибка.

Последний раз редактировалось Slava-martyn; 04.12.2011 в 13:06.
Slava-martyn вне форума  
Непрочитано 04.12.2011, 14:18  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Сообщение от Slava-martyn Посмотреть сообщение
Эх хотел ведь написать... Избыточность нужна мне для наглядности, и сокращать программу не требуется. Вопрос в том, почему я не могу выставить другой период таймера №2 в МК? Почему он работает синхронно с TMR0?
Опередили
Да!
Но попробуйте его изменить, вот так например:
MOVLW b'00111001' ;
MOVWF T2CON ;
D1 и D3 также работают синхронно... Где-то в другом ошибка.
У Вас не разрешено прерывание по переполнению таймеров TMR1 и TMR2.
Вы к регистру PIE обращаетесь в банке 0, а он (PIE) находится в банке 1.
alvadep вне форума  
Непрочитано 04.12.2011, 14:45  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Исправил
PHP код:
    BSF            STATUS,RP0    Банк 1
    BSF            INTCON
,T0IE    Разрешить прерывания от TMR0
    BSF            PIE1
,TMR1IE    Разрешить прерывания от TMR1
    BSF            PIE1
,TMR2IE Разрешить прерывания от TMR2
    BSF            INTCON
,GIE    Разрешить все прерывания
    BCF            STATUS
,RP0    Банк 0 
Но не помогло. А у Вас получилось?
Slava-martyn вне форума  
Непрочитано 04.12.2011, 15:23  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Мигание светодиодом :)

Вам надо еще разрешить прерывание от периферийных модулей (bsf INTCON, PEIE).

В общем, это еще раз подтверждает то, что излишества только усложняют отладку.
Это ни в коей мере не относится к Вам, я понимаю, что Вы экспериментируете и пытаетесь во всем разобраться, но в реальных устройствах, чем проще, тем лучше.

Последний раз редактировалось alvadep; 04.12.2011 в 15:42.
alvadep вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное мигание светодиода Yuyukos Источники питания и свет 2 05.10.2010 23:08
Как изготовить наклейку, подсвечиваемую светодиодом? Savrik Делимся опытом 8 30.03.2010 10:20
мигание цифры на LCD begun Микроконтроллеры, АЦП, память и т.д 8 15.03.2010 23:28
плавное мигание светодиодов Stanislav2002 Источники питания и свет 2 31.08.2005 11:04


Часовой пояс GMT +4, время: 10:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot