|
PIC12F675 не понятки
|
|
| tolyan249 |
Дата: Пн, 22.09.2025, 16:09 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
217
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Device = 12F675 ; или 629 Declare Xtal= 4 Declare Reminders OFF 'All_Digital ON Config CPD_OFF, CP_OFF, MCLRE_OFF, PWRTE_ON, WDT_OFF, INTRC_OSC_NOCLKOUT
Symbol Led = GPIO.5 ; светодиод '
Set_OSCCAL OSCCAL ;Загрузить константу OSCCAL
All_Digital On ; отключить аналоговые входы перевести все порты как цифровые
Clear
'--------------------------Íà÷àëî ïðîãðàììû-----------------------------
GPIO = %000000 ; Настроить порты CMCON = 7 ; отключить компаратор TRISIO = %011101 ; Yfcnhjbnm yfghfdktybt gjhnjd
Main: Led=1 DelayMS 10 Led=0 DelayMS 5 GoTo Main
end
вот такая простая программа ,работает в протеусе и в железе ,но есть одно но . В железе ширина импульса не соответствует заданному ,10мс-1 и 5мс-0 ,должно быть ,на самом деле 7.3мс-1 и 2.3-0 ,не понятно Применяю внутренний генератор ,и записываю константу на место. В чём может быть проблема ? В протеусе норм. в железе не соответствует. Спасибо.
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Вт, 23.09.2025, 05:15
|
|
|
|
| tolyan249 |
Дата: Пн, 22.09.2025, 16:58 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
217
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Это снимок с осциллографа. Клетка равна 5мс. Должно быть 2 клетки полные и 1 клетка полная. Но что то не то. .Не понятно.
Добавлено (22.09.2025, 18:14) --------------------------------------------- Сделал на pic 12f629 ,это же программа ,токо 629 и запрограммировал 629, там всё отлично даже в железе ширина импульсов чётко соответствует назначенному ,10мс и 5мс ,чётко ,странно не работает на 675. 4пика менял 675 и у всех вот так ,на 629 всё отлично не понятно ,может конфиг другой какой то надо может быть.
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Пн, 22.09.2025, 19:20
|
|
|
|
| xvovanx |
Дата: Пн, 22.09.2025, 19:58 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
363
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Если смотреть по даташиту, то единственное отличие - это АЦП у 675. Попробуйте регистрами отключить не только компаратор но и работу АЦП. Возможно он по умолчанию делает разряд внутреннего кондера АЦП, вот тайминги и плывут.
|
|
|
|
| tolyan249 |
Дата: Вт, 23.09.2025, 05:01 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
217
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
xvovanx
Да совершенно верно ,даташит у них один в один кроме ацп, думаю что скорее дело в конфигурации, Не понятно ,просто всегда работал с 629 ,с 675 не работал ,хотя в протеусе работает без нареканий ,но вся проблема в том что АЦП мне будет нужно все 4 канала.
All_Digital On ; отключить аналоговые входы перевести все порты как цифровые(не помогло)
Спасибо за ответ и помощь. Может кто сталкивался с этим. ?
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Вт, 23.09.2025, 05:15
|
|
|
|
| tolyan249 |
Дата: Вт, 23.09.2025, 06:49 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
217
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Это на PIC12F629, всё чётко работает в железе ,ширина импульсов соответствует заданным параметрам., клетка 2.5мс ,получается 10мс-1 и 5мс-0 . почему на 675 не работает не понятно ,работает но ширина не соответствует заданным параметрам. Программа та же ,конфиг тоже ,на 629 работает нормально ,на 675 несоответствие.Добавлено (23.09.2025, 09:32) --------------------------------------------- Всё нашёл причину ,всем спасибо. Вся проблема в самих контроллерах 675 ,видать бракованные ,записал программу в 675 ещё в 2 следующих ,всё заработало ,а эти 4 контроллера сколько не пытался ,работаю не правильно ,программу не менял ,просто менял сами контроллеры другие ,так что проверяйте их меандром на соответствие ширины импульса. Добавлено (24.09.2025, 19:25) --------------------------------------------- Ещё вопрос ,почему на GP4 присутствует 2.5в хотя на эту ногу я не подаю напряжения а ацп меряет на нём это напряжение. Спасибо.
Device 12F675 Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_OFF, BODEN_OFF, MCLRE_OFF Declare Xtal = 4 Declare Reminders On Set_OSCCAL OSCCAL All_Digital On
Declare Adin_Res 10 Declare Adin_Tad 32_FOSC Declare Adin_Stime 50
; Declare option reg.7=1'отключить подтягивающие резисторы ; OPTION_REG=%10000000 'отключить подтягивающие резисторы ; OPTION_REG = %00001100 ; WPU = %000000 ;Настройка подтягивающих резисторов индивидуально для каждого порта
; GPIO = %000000 TRISIO = %011111 'GP0, GP1 - АЦП; GP2, GP4, GP5 - выходы; GP3 - 10к на +5В ANSEL.4 = 1 ' \ ANSEL.5 = 1 ' FRC ANSEL.6 = 0 ' / ANSEL.0 = 1 'Установим GPIO.0 аналоговым входом ANSEL.1 = 1 'Установим GPIO.1 аналоговым входом ANSEL.2 = 1 'Установим GPIO.2 аналоговым входом ANSEL.3 = 1 'Установим GPIO.3 аналоговым входом ANSEL.4 = 1 'Установим GPIO.4 аналоговым входом ADCON0.6 = 0 'Источник опорного напряжения - +5В от шины питания 0 ADCON0.7 = 1 '
CMCON=7
WPU = 0 ' отключаем подтягивающие резисторы
В PIC12F675 4 ацп ,3 меряют нормально ,а 4 ацп меряет не правильно ,даже если нет напряжение на входе ,но есть на ноге 3(GPIO 4). Как его от туда убрать ,пока не получается ,
Может кто что подскажет.?
Спасибо.
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Вт, 23.09.2025, 07:48
|
|
|
|
| xvovanx |
Дата: Чт, 25.09.2025, 19:12 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
363
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата tolyan249 (  ) почему на GP4 присутствует 2.5в хотя на эту ногу я не подаю напряжения а ацп меряет на нём это напряжение. На висящем в воздухе входе может напряжение плавать как ему вздумается. Надо либо подавать ему напругу, либо притягивать резистором к нулю. В воздухе некорректно оставлять входы без привязок.
|
|
|
|
| tolyan249 |
Дата: Пт, 26.09.2025, 07:19 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
217
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Спасибо всем за помощь .Сделал, всё работает ,просто при программирование в программаторе надо было выбрать флаг генератора (Вн., Rс), а так как я использую внутренний генератор 4мгц , то выбирал флаг (Вн.,Rс.,CLKOUT), и получалось что 3 нога контроллера работала как выход внутреннего генератора. Поэтому там было 2.5в. Сейчас всё нормально работает.
Как то так.
если знаешь,помоги.
|
|
|
|