помогите разобраться с pic16f74
|
|
736852 |
Дата: Пт, 20.03.2015, 16:39 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 08.06.2014
Статус:
Offline
|
не могу разобраться,замучился уже. Раньше писал эту программку на этот пик и все работало. Теперь после несущественной доработки работать отказывается порт Б нет генерации импульса. Возвращал все назад порт также не работает. Пишу под пик 16F877A все работает. Просто засада какая то. В протеусе 16F877A так как pic16f74 там нет. В протеусе все работает Добавлено (20.03.2015, 16:39) --------------------------------------------- может я как то не так настраиваю порты? или же у у этого камня есть какие то особенности просто этих камней у меня много в отличие от камня PIC16F877A.
|
|
|
|
ADMIN |
Дата: Вс, 22.03.2015, 18:07 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
В MPLAB генерация есть, по крайней мере, проверил. И еще, к PIC16F74, наверное, больше подходит PIC16F874. Не так ли? И что за доработка была?
|
|
|
|
736852 |
Дата: Вс, 22.03.2015, 19:56 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 08.06.2014
Статус:
Offline
|
спасибо,что откликнулись. Доработка была в отключении заставки и в схеме,в основном фильтра по питанию и оптроны на развязку порта. Странно,но я все склоняюсь может это глюк в протоне,переустановлю и проверю. Да и еще заметил в протеусе на 877 -ой отказывает нормально работать АЦП а в камне без проблем. Вроде все просто,а вот запутался. Хорошая вещь протеус,но что то часто стал замечать глюки.
|
|
|
|
ADMIN |
Дата: Пн, 23.03.2015, 05:08 | Сообщение # 4 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Чтобы понять, в протоне это или нет, можно глянуть код асм. Насколько я понял, у меня версия протона новее.
|
|
|
|
736852 |
Дата: Пн, 23.03.2015, 15:53 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 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) --------------------------------------------- так что вопросов больше чем ответов
Сообщение отредактировал
736852 - Пн, 23.03.2015, 14:45
|
|
|
|
xvovanx |
Дата: Пн, 23.03.2015, 23:21 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата 736852 ( ) ..так было...переменная которая меняется с 0 на 255 и на оборот ...а так сделал .. переменная которая меняется с 0 на 1 и на оборот... Может в этом и вина - 255 переходит на 0, если добавить единицу, а 1 переходит на 0 если отнять.
|
|
|
|
terrarus |
Дата: Вт, 24.03.2015, 08:59 | Сообщение # 7 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
|
|
|
|