www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 29 Юли 2021, 08:52

Часовете са според зоната UTC + 2 часа




Напиши нова тема Отговори на тема  [ 1 мнение ] 
Автор Съобщение
МнениеПубликувано на: 18 Юли 2021, 12:02 
Offline
Аватар

Регистриран на: 07 Дек 2006, 17:24
Мнения: 1214
Местоположение: Силистра
Дежавю :rolleyes : Честотомер с PIC, в случая: PIC16F628A, XTAL = 4 MHz, CCS, PIC-C Compiler.
В стаята виждам поне 5 честотомера :biggrin. Въпросите са по-скоро за алгоритъма. Занимание в хобито за самото занимание.

1. При използване на timer0 за времеви отчети, напр. 1 сек, timer1 - вход (pin 12, RB6, T1CKI)
кодът заработи след няколко опита. Без prescaler на входа, при тестване на монолитен кварцован генератор 20 000 000 Hz, с нормална мин грешка (която може да се отстрани както хардуерно (кондензаторите на кварцовия резонатор), така и програмно (допълнителни цикли микроконтролера), последнят знак почти "не скача" +/-1 единица. Добра разрядност 1 Hz: във времето виждам изменението на честотата с температурата дори на двата кварцови генератора. Максималната входа честота засега не ме интересува и вероято съответства на параметрите в pdf.

2. При използване на timer0 - вход (pin 3, RA4, T0CKI), timer1 - за времеви отчети, напр. 1 сек
масималната вхподна честота на timer0 трябва да е по-малка от Fosc / 4 (~ 961 kHz), т.е. необходимо е да се включи prescaler.

При вход 20 MHz -> prescaler = 32..256 кодът работи, но губя разрядост на по-ниски честоти. Т.е. най-малкото трябва да превключвам prescaler в зависимост от честотата на входа. Откъде да взема информация нормално ли работи или не превключва (ако не превклюва, то показанията са случайни, хаотични)? След това с коефициенти по таблица, с пресмятане или по друг начин може ...

Пробвах да определям prescaler динамично: проверка с (pre-1), като започвам с най-големия: 256->128->64->32 -> дааа, това е търсения делител и го използваме; не ->. стоп на намалянето делителя. "От голям към малък "prescaler начинът работи почти ОК. Наобратно: "от малък към голям" още не съм го направил, но, вероятно, има по лесен начин?

Искам за себе си да уточня вариантите за решение с timer0 във втория случай.


Прикачени файлове:
pic_fc.jpg
pic_fc.jpg [ 85.57 KiB | Прегледано 9 пъти ]
Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 1 мнение ] 

Часовете са според зоната UTC + 2 часа


Кой е на линия

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


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

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com