| Автор |
Съобщение |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
 Странен проблем с външно пълнене на TMR1
Конфигурирам си таймер1 да се пълни през RB6 на PIC16F87. Този пин е към колектора на един оптрон, който е изтеглен към захр. напр през 10К резистор.Активирам таймера с T1CON,0 и той се препълва без да подавам положителни фронтове.Когато го изключа и тествам пина като стандартен вход по същата схема всичко е ОК, в смисъл няма някви смущаващи осцилации, които да са причина за препълване на таймера.
Има ли някаква особеност при конфигурирането на таймера, освен:
movlw B'00000110'
movwf T1CON
Шибаното е че този пин се ползва от ICD-то и не мога да дебъгна както трябва.Иначе съм му дал DEBUG_OFF в конфиг. дума, за да си бъде стандартен I/O.
|
| Чет Май 22, 2008 3:58 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Re: Странен проблем с външно пълнене на TMR1
А как си конфигурирал OPTION_REG ?
Там е важно да му заложиш делител и към кой таймер да ходи от какъв фронт да се пълни ?
_________________ Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
|
| Чет Май 22, 2008 4:37 pm |
|
 |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
OPTION_REG няма отношение към работата на TMR1, а на TMR0 и WDT.
|
| Чет Май 22, 2008 4:55 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
пусни синхронизацията
|
| Чет Май 22, 2008 10:09 pm |
|
 |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
Не е от синхронизацията.
Възможно ли е да е от това че ICD 2 програматора ползва този пин, въпреки че така или иначе го изключвам а пина го свързвам през джъмпер към у-то.
Никви чипове с малко пинове вече ... мамка му ...
|
| Пет Май 23, 2008 10:49 am |
|
 |
|
GTN
Ранг: Популярен
Регистриран на: Пет Яну 26, 2007 5:05 pm Мнения: 310 Местоположение: из България
|
Сигурен ли си че TRISB6=1?
Аз точно сега си се занимавам с друг процесор но пак с ТМР1. Пуксма го така:
Като го спирам
|
| Пет Май 23, 2008 11:36 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Ти всъщност не каза по какво разбираш че се е напълнил таймера - по прекъсване ли, проверяваш TMR1H и ТМR1L или как.
|
| Пет Май 23, 2008 6:03 pm |
|
 |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
По флаговия бит.
Тъй като не мога да използвам ICD-то като дебъгер си пускам едно диотче като контрола.
Пускам таймера и следя бита, ако се вдигне паля диода, ако не нищо.
Като не пусна таймера диода не светва, като го пусна светва моментално.
Нулирам флага и пускам таймера, пускам таймера и на следващата стъпка нулирам флага - все същия резултат.
Няква шибана история, ама вече си направих платката и не ми се заменя с някоя 876-ца.
Така или иначе се отказах да ползвам таймера по този начин и просто си следя RB6 и инкрементирам.
Проблема е, че трябва да преброя близо 600 фронта и с TMR1 в Compare мод на CCP-то щеше да стане перфектно ама и така става.
Друг път си вземи Рангеле чип с повече пинове, да не им се припокриват функциите, дебугвай си и си свиркай...
Иначе ако някой се сеща нещо по въпроса може да сподели.
|
| Пет Май 23, 2008 10:54 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Щом не брои от вънка, значи брои от някъде другаде.
Прегледай си инициализацията.
|
| Съб Май 24, 2008 1:27 am |
|
|