Отговори на тема  [ 19 мнения ]  Отиди на страница 1, 2  Следваща
ТMR0 и RA4 странна работа ... 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение ТMR0 и RA4 странна работа ...
Използвам TMR0 за броене на импулси чрез RA4 при падащ фронт за 50 ms (PIC16F876).
На симулацията с Протеуса всичко е наред, а в действителност преброява 4 - пъти повече импулси.
Гледам тука някви обяснения относно фазови синхронизации с тактовия генератор, ама нещо не вдявам.

Therefore, it is
necessary for T0CKI to be high for at least 2Tosc (and
a small RC delay of 20 ns) and low for at least 2Tosc
(and a small RC delay of 20 ns).

Някой да си е блъскал също главата.
Импулсите са си точни, гледам ги на Осцилоскопа и като честота и форма нямат проблеми.


Пет Фев 24, 2006 4:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Постни кода за инициализация на TMR0, какъв му е делителя ? Да не ди да брои 4 пъти по-малко импулси, вместо 4 пъти в повече ? Да нямаш шумотевици от входния сигнал, видя ли го с осцилоскоп с каква форма ? Достатъчно е да има тесен пик и да брои в повече.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пет Фев 24, 2006 7:00 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Фев 04, 2005 3:18 pm
Мнения: 309
Местоположение: Sofia
Мнение 
RA4 е с отворен колектор , изтегли го за всеки случай с няколко килоома към +


Пет Фев 24, 2006 7:39 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
Най-вероятно проблема е до това, че всяко действие с TMR0 регистъра нулира PS-а :-) И става весело :-)

Не е до незнаене. Просто се случва някои път да забравиш да укажеш стойността на PS.

Предполагам и затова Pirev иска кода :-)

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Пет Фев 24, 2006 7:41 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Dimiter написа:
RA4 е с отворен колектор , изтегли го за всеки случай с няколко килоома към +


Без да се сърдиш че пускам дуплика, това дето предлагаш какво ще помогне ? Човека използва RA.4 като вход, не като изход. Ако е изход да, ама като вход ми е голяма въпросителна ...

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пет Фев 24, 2006 7:50 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 26, 2005 3:19 pm
Мнения: 336
Местоположение: Varna
Мнение 
Dimiter написа:
RA4 е с отворен колектор , изтегли го за всеки случай с няколко килоома към +

То няма ли вътре WPU, а и говорим за вход.
Поздрави и успех :)

_________________
http://ds-portfolio.com/bg/


Последна промяна zz_stefanov на Пет Фев 24, 2006 7:56 pm, променена общо 1 път



Пет Фев 24, 2006 7:55 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Фев 04, 2005 3:18 pm
Мнения: 309
Местоположение: Sofia
Мнение 
прави проблеми наистина


Пет Фев 24, 2006 7:55 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
BANKSEL OPTION_REG
movlw B'01101000'
movwf OPTION_REG
movlw D'6'
movwf ADCON1
movlw B'00010101'
movwf TRISA

Но пак да кажа на Протеуса си върви както трябва.
Не е до смущения, защото направих достатъчно много проби и то с различни честоти.
Резултата - точно четири пъти повече преброени импулси.


Пет Фев 24, 2006 9:00 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 26, 2005 3:19 pm
Мнения: 336
Местоположение: Varna
Мнение 
perro_iv написа:
BANKSEL OPTION_REG
movlw B'01101000'
movwf OPTION_REG
.....
Това не прави ли броенето по нарастващ фронт и от там да се обърква всичко.

Dimiter извини ме :oops: WPU имало само в PORTB
Поздравии успех :)

_________________
http://ds-portfolio.com/bg/


Пет Фев 24, 2006 9:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Ами нямал съм никакви проблеми, не разбрах импулсите ли са ти 50 мс или времто за което мериш е 50 мс, ако винаги ралзката е 4 пъти повече ... замислял сли си дали просто не мериш за 4 пъти по дълго време .. защото смущение може да прави проблем, но пък винаги да е точно 4 пъти в повече ....


Пет Фев 24, 2006 11:05 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Правилно, допуснал съм грешка:
коректната конфигурация е :00111000, но едва ли това ще е причината, импулсите са с правоъгълна форма и К = 50%.
Ако не е нещо свързано със синхронизация спрямо тактовите импулси, което въобще не можах да разбера, проблемът ще е по-скоро хардуерен.


Пет Фев 24, 2006 11:15 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Времето за което меря е 50ms , честотата на имп. поредица е от 1 до 4,5 KHz.
При един килохерц би трябвало да преброи около 50 фронта, а в съответния регистър стойността е 200.
И така за всички честоти, като при по-високите за този интервал превърта регистъра.
Изхода от Hex inverting Schmitt trigger 74HC/HCT14 е свързан директно към RA4.
Времето задавам чрез TMR1 и при симулацията на Proteus си брои както трябва.
Странна работа, в понеделник ще се задълбоча повече върху РЕАЛИТИ изпълнението.


Пет Фев 24, 2006 11:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение 
Симулаторите са удобно нещо, но никога 100% сигурност.
Трябва буква по буква да се чете дата шиита на процесора.
И най добре се пише на асемблер..
В този случай най-вероятно проблема е в инициализацията на таймер 1 (за 50-те мс)


Съб Фев 25, 2006 1:20 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение 
@perro_iv, зарежи симулаторите и провери още веднъж програмата си.
Прочети внимателно описанията и ератите на двата таймера, като отчиташ и тактовата честота на контролера.


Съб Фев 25, 2006 10:18 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Проблема е ясен и е в схемата за извеждане стойността на регистъра.
Понеже предназначението на схемата е с изследователска дейност, реших че най-простия начин за визуализиране на резултата е чрез преместващ регистър и
8 LED-а. Да ама наслагах и едни изтеглящи резистори, дето в симулацията ги няма. Получава се някво объркване по фронтове (днес не ми остана време да се задълбоча) и целия резултат излиза с два бита изместен наляво, което май е 4-пъти по-голяма стойност.


Вто Фев 28, 2006 1:08 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 19 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

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


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

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