|
|
|
|
|
Wladimir_TS: Так а есть-ли гальваническое соединение между этими точками в самом приборе не понял вопрос, но может моя разводка печатки что-нибудь прояснит? |
|
|
|
Не изучал, бум изучать. |
|
|
|
GO: Wladimir_TS: Так а есть-ли гальваническое соединение между этими точками в самом приборе не понял вопрос, но может моя разводка печатки что-нибудь прояснит? При рассмотрении программы в подпрограмме обработки прерывания обнаружено : ;------------------ Interrupt ------------------ org 0x004 movwf W_TEMP ;save W swapf STATUS,W ;swap STATUS, W clrf STATUS movwf STATUS_TEMP ;save status movf PCLATH,W movwf PCLATH_TEMP ;save PCLFTH decfsz TMR0_Count goto restore_context bsf Flags,0 ;Time Out! goto stop_TMR1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Куда-то ушли, а в стеке адрес возврата остался .... ОЗУ засирается..... restore_context bcf INTCON,T0IF ;clear interrupt flag movf PCLATH_TEMP,W movwf PCLATH swapf STATUS_TEMP,W ;fetch status, reswap nibbles movwf STATUS ;restore status swapf W_TEMP,F ;swap nibbles in preparation swapf W_TEMP,W ;for the swap restoration of w retfie ;return from interrupt |
|
|
|
Перенесено из другой темы: Wladimir_TS: В вашей программе для измерителя ESR нашел, как мне кажется, некорректный выход из пррывания. Когда я его заблокировал - стабильность показаний возросла, но теперь нет реакции на КЗ щупов Такой выход сделан специально, это вполне допустимо и работает. Никакого забивания памяти при этом не происходит, стек у ПИКов отделен от остальной памяти. А нет реакции на КЗ - это потому, что вы убрали контроль максимального времени измерения. |
|
|
|
Вот свежая информация - так и остается коэффициенты для каналов резисторов 3 (для начала диапазонов). Есть существенная нелинейность по показаниям. Ставлю резистор 0,56 Ом (+/-0,5%) - имею 0,048 на индикаторе , ставлю второй с ним последовательно имею на индикаторе 0.268 Ом.... С емкостями то-же. Ставлю 2 мкФ - имею 1,6 (фактически по Е7-8 - 1,98 мкФ, бумажный), ставлю 21,8 мкФ - на выходе 21,8 (настроил), сталю 104 мкФ имем опять занижение 98-94 мкФ (прыгает) (все бумага), ставлю 100 000 мкФ (почти 120 тысяч по другому прибору) имею только 86 000 и ESR=0. Да - опрос АЦП производися по 1 разу или нет ? Я из-за ошибки в монтаже перекидывал каналы АЦП на другие вывода в начале программы при установках эквивалентов. Процессор у меня 877ой. |
|
|
|
Wladimir_TS: Да - опрос АЦП производися по 1 разу или нет ? Я из-за ошибки в монтаже перекидывал каналы АЦП на другие вывода в начале программы при установках эквивалентов. Опрос АЦП выполняется в блоке, имеющим метку ESR_measure (стр.382 go_esr.asm) Сначала выполняется измерение с канала 0 - это усилитель с к-том 330, затем с канала 1 (к-т 33) Выбор номера канала измерения - строка 396: movlw b'10000001' ;Fosc/32, канал 0, модуль АЦП вкл. и строка 411: movlw b'10001001' ;Fosc/32, канал 1, модуль АЦП вкл. Менять выбор канала надо было в этих строках, только учтите, что можно выбирать номера только AN0, AN1, AN3. Если у вас используются другие, надо изменить инициализацию АЦП. |
|
|
|
В продолжение вопроса GO, подскажите - какие напряжения или их форма д.б. на выв. RC0 - RC7 PIC? Такое ощущение, чо он долхый... P.S. в отладочном режиме в строке Сх показывает значения, пропорциональные подключенной емкости... |
|
|
|
Andrew214: какие напряжения или их форма д.б. на выв. RC0 - RC7 PIC Советую поглядеть в программе (блок измерений), что и когда выдается на порт С, там всего две страницы текста. А так на словах - короткие импульсы с периодом повторения 0.5 сек. Что-то мне кажется, что у вас проблемы с прошивкой EEPROM памяти... |
|
|
|
Спасибо, я послезавтра весь день буду на работе, покопаюсь с программатором. P.S. на 2-х выводах пульсаций с периодом 2 Гц нет. На плате все перемычки на месте, живые, КЗ нет. Плату использовал от Gregory |
|
|
|
Да, явно проблемы импорта прошивки в программатор (Autoprog). Во вложении скриншот кода из его окна. Есть ли какой способ обхода? 
|
|
|
|
|