Отговори на тема  [ 9 мнения ] 
Странен проблем с външно пълнене на TMR1 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Re: Странен проблем с външно пълнене на TMR1
perro_iv написа:
Конфигурирам си таймер1 да се пълни през RB6 на PIC16F87. Този пин е към колектора на един оптрон, който е изтеглен към захр. напр през 10К резистор.Активирам таймера с T1CON,0 и той се препълва без да подавам положителни фронтове.Когато го изключа и тествам пина като стандартен вход по същата схема всичко е ОК, в смисъл няма някви смущаващи осцилации, които да са причина за препълване на таймера.
Има ли някаква особеност при конфигурирането на таймера, освен:

movlw B'00000110'
movwf T1CON

Шибаното е че този пин се ползва от ICD-то и не мога да дебъгна както трябва.Иначе съм му дал DEBUG_OFF в конфиг. дума, за да си бъде стандартен I/O.

А как си конфигурирал OPTION_REG ?
Там е важно да му заложиш делител и към кой таймер да ходи от какъв фронт да се пълни ?

_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !


Чет Май 22, 2008 4:37 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
OPTION_REG няма отношение към работата на TMR1, а на TMR0 и WDT.


Чет Май 22, 2008 4:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
пусни синхронизацията


Чет Май 22, 2008 10:09 pm
Профил ICQ WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Не е от синхронизацията.
Възможно ли е да е от това че ICD 2 програматора ползва този пин, въпреки че така или иначе го изключвам а пина го свързвам през джъмпер към у-то.
Никви чипове с малко пинове вече ... мамка му ...


Пет Май 23, 2008 10:49 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Сигурен ли си че TRISB6=1?
Аз точно сега си се занимавам с друг процесор но пак с ТМР1. Пуксма го така:
Код:
T1CON=0b00000110;   //timer 1 OFF, gate_off, prescaler 1:1,  LP_off, asyncronious
TMR1ON=1;   //start timer 1


Като го спирам
Код:
TMR1ON=0;   //stop timer 1
TMR1L = 0;
TMR1H = 0;


Пет Май 23, 2008 11:36 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Ти всъщност не каза по какво разбираш че се е напълнил таймера - по прекъсване ли, проверяваш TMR1H и ТМR1L или как.


Пет Май 23, 2008 6:03 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
По флаговия бит.
Тъй като не мога да използвам ICD-то като дебъгер си пускам едно диотче като контрола.

Пускам таймера и следя бита, ако се вдигне паля диода, ако не нищо.

Като не пусна таймера диода не светва, като го пусна светва моментално.

Нулирам флага и пускам таймера, пускам таймера и на следващата стъпка нулирам флага - все същия резултат.

Няква шибана история, ама вече си направих платката и не ми се заменя с някоя 876-ца.

Така или иначе се отказах да ползвам таймера по този начин и просто си следя RB6 и инкрементирам.
Проблема е, че трябва да преброя близо 600 фронта и с TMR1 в Compare мод на CCP-то щеше да стане перфектно ама и така става.

Друг път си вземи Рангеле чип с повече пинове, да не им се припокриват функциите, дебугвай си и си свиркай...

Иначе ако някой се сеща нещо по въпроса може да сподели.


Пет Май 23, 2008 10:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение 
Щом не брои от вънка, значи брои от някъде другаде.
Прегледай си инициализацията.


Съб Май 24, 2008 1:27 am
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни