Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
помогите разобраться с pic16f74
736852 Дата: Пт, 20.03.2015, 16:39  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 08.06.2014

Статус: Offline

не могу разобраться,замучился уже. Раньше писал эту программку на этот пик и все работало. Теперь после несущественной доработки работать отказывается порт Б нет генерации импульса. Возвращал все назад порт также не работает. Пишу под пик 16F877A все работает. Просто засада какая то. В протеусе  16F877A так как pic16f74 там нет. В протеусе все работает

Добавлено (20.03.2015, 16:39)
---------------------------------------------
может я как то не так настраиваю порты? или же у у этого камня есть какие то особенности просто этих камней у меня много в отличие от камня PIC16F877A.

Прикрепления: 1069083.zip (112.7 Kb)
ЯНДЕКС Дата: 20.03.2015
ADMIN Дата: Вс, 22.03.2015, 18:07  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

В MPLAB генерация есть, по крайней мере, проверил. И еще, к PIC16F74, наверное, больше подходит PIC16F874. Не так ли? И что за доработка была?
736852 Дата: Вс, 22.03.2015, 19:56  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 08.06.2014

Статус: Offline

спасибо,что откликнулись. Доработка была в отключении заставки и в схеме,в основном фильтра по питанию и оптроны на развязку порта. Странно,но я все склоняюсь может это глюк в протоне,переустановлю и проверю. Да и еще заметил в протеусе на 877 -ой отказывает нормально работать АЦП а в камне без проблем. Вроде все просто,а вот запутался. Хорошая вещь протеус,но что то часто стал замечать глюки.
ADMIN Дата: Пн, 23.03.2015, 05:08  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Чтобы понять, в протоне это или нет, можно глянуть код асм. Насколько я понял, у меня версия протона новее.
736852 Дата: Пн, 23.03.2015, 15:53  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 08.06.2014

Статус: Offline

разобрался,но так и не понял почему раньше работало и на том и на этом камне,а теперь только на 877А. Изменил в программе следующее:
так было
i = ~i  ' переменная которая меняется с 0 на 255 и на оборот для вычисления полярности импульса
If i = 0 Then fak = 0:TMR1L = VARL1:TMR1H = VARH1
If i = 255 Then fak = 1:TMR1L = VARL:TMR1H = VARH
а так сделал
i = ~i  ' переменная которая меняется с 0 на 1 и на оборот для вычисления полярности импульса
If i = 0 Then fak = 0:TMR1L = VARL1:TMR1H = VARH1
If i = 1 Then fak = 1:TMR1L = VARL:TMR1H = VARH
ну и соответственно переписал
Dim i As Byte на Dim i As bit
да и еще чтоб корректно работало АЦП в протеусе переписал Значение регистра ADCON1

ADCON1 = %10000000 на ADCON1 = %00000000,хотя если честно в камне работа АЦП ни как не изменилась.

Добавлено (23.03.2015, 15:53)
---------------------------------------------
так что вопросов больше чем ответов  cool

Сообщение отредактировал 736852 - Пн, 23.03.2015, 14:45
xvovanx Дата: Пн, 23.03.2015, 23:21  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 332
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата 736852 ()
..так было...переменная которая меняется с 0 на 255 и на оборот ...а так сделал .. переменная которая меняется с 0 на 1 и на оборот...

Может в этом и вина - 255 переходит на 0, если добавить единицу, а 1 переходит на 0 если отнять.
terrarus Дата: Вт, 24.03.2015, 08:59  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

736852,  "Хорошая вещь протеус,но что то часто стал замечать глюки."
 
Нет так никаких глюков, не пугайте людей.
Лучше внимательнее настраивайте разряды порта А, особенно когда используете часть разрядов как аналоговые.
 
 
Замечания о настройке аналоговых входов PIC-микроконтроллеров
В PIC-микроконтроллерах регистр ADCON1 предназначен для того, чтобы выбирать, какими входами, цифровыми или аналоговыми будут вывода порта PORTA
Кроме ADCON1, также отвечают за настройку выводов АЦП и регистры TRISA и TRISE. Если выводы микросхемы настраиваются как аналоговые входы, то при этом должны быть установлены соответствующие биты в регистре TRIS. Если соответствующий бит сброшен в 0, то вывод микросхемы настроен как цифровой выход со значениями выходных напряжений Uвых0=0V или Uвых1=5V. Сам же модуль АЦП функционирует независимо от состояния битов регистров TRISA и TRISE.
Настроенные как цифровой вход каналы будут преобразовывать входные аналоговые уровни в цифровые, что однако не окажет влияния на точность преобразования в других каналах настроенных как входные аналоговые.


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
736852 Дата: Вт, 24.03.2015, 15:39  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 08.06.2014

Статус: Offline

Цитата xvovanx ()
Может в этом и вина - 255 переходит на 0, если добавить единицу, а 1 переходит на 0 если отнятьнет
нет там знак инверсии i меняет своё значение именно с 0 на 255 и наоборот i=~i,а ADCON1 = %10000000 на ADCON1 = %00000000 изменил с правого на левое выравнивание результата АЦП вроде так.
А самое обидное,что данный приборчик я делал года полтора назад для себя для диагностики автомобильных катушек зажигания. Проект сохранился да и приборчик еще живой и служит верой и правдой на PIC16F74. Но вот решил сделать еще один с изменениями и моими желаниями да вот такая засада получилась. Не могу сказать какая у меня тогда версия протеуса была и протона. Программаторы у меня те же питкит и тритон.

Сообщение отредактировал 736852 - Вт, 24.03.2015, 16:00
  • Страница 1 из 1
  • 1
Поиск: