Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не переносится код с одного контроллера на другой
Не переносится код с одного контроллера на другой
vladh Дата: Пн, 24.12.2018, 15:48  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 280
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Уважаемые коллеги. Помогите. Сейчас делаю контроллер заряда АКБ от солнечной панели. Дело в том, что разложил плату под контроллер без внешнего кварца, т.е. под 18F4520, а отлаживал программу на 18F452! Решил, что легко переброшу код, а оно не пошло. На экране отображается также, кроме цифровых значений. Но вот клавиатуру вообще не воспринимает. Не могу понять в чем дело. В коде программы есть подпрограмма под меткой KeyPad. В этой подпрограмме поочередно "1" подается на горизонтали клавиатуры, которым присвоил символы HorA, HorB, HorC, HorD. И даже если программу запустить в пошаговом режиме не видно что на выходах соответствующих портов в этот момент появляются "1". Правда если здесь в любой строке вставить установку любого из этих портов в виде PORTB.3 = 1, то единица появляется на выходе порта, но на следующей строчке она пропадает, хотя перестановки в ноль не было! Может кто докопается до сути происходящего. И еще. Почему значения измеренных потенциалов на соответствующих входах отличаются?
Прикрепления: PIC18F.rar(220.1 Kb)
ЯНДЕКС Дата: 24.12.2018
xvovanx Дата: Вт, 25.12.2018, 00:37  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 369
Репутация: 26   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Сравнивайте даташиты на процессора. У разных чипов по разному может регистрами прописываться цифрововой/ аналоговый входы/ выходы и внутренние привязки к питанию. Отличия конфигураций в начале проги также без внимания не оставить.
Aleksey_174 Дата: Вт, 25.12.2018, 14:20  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 79
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

vladh, Где вы Протеусы такие берете?
dimvad Дата: Вт, 25.12.2018, 16:11  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 79
Репутация: 14   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

Как минимум, чтоб в 4520 сконфигурировать первые 5 входов как аналоговые надо, чтоб ADCON1 = %00001010. Про остальное трудно сказать, т к Ваш протеус слишком новый, не открывается ни хера. Да и у Вас задействованы 6 входов АЦП, вроде.
vladh Дата: Ср, 26.12.2018, 05:06  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 280
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Aleksey_174 ()
vladh, Где вы Протеусы такие берете?
А что Вам не понравилось? Вообще всегда многое беру на Sonsivri. Я в этой версии уже давно работаю. Поэтому мне казалось, что он стоит почти у всех. Конечно, надо держать парочку протеусов на компьютере. Один из которых значительно старше. Кстати может посоветуете какую версию установить дополнительно, которая с большей вероятностью есть у большинства?

Добавлено (26.12.2018, 05:22)
---------------------------------------------
Цитата dimvad ()
Как минимум, чтоб в 4520 сконфигурировать первые 5 входов как аналоговые надо, чтоб ADCON1 = %00001010. Про остальное трудно сказать, т к Ваш протеус слишком новый, не открывается ни хера. Да и у Вас задействованы 6 входов АЦП, вроде.
Меня в первую очередь волнует даже не АЦП преобразование, а то, почему не работает клавиатура. Я вот узнал вчера, что надо было в конфигурации указать:
PBADEN = OFF
что означает, что все вводы порта В должны работать не как аналоговые входа, а как цифровые вход/выход. Но к сожалению мне пока эти знания не помогли. Да и Протеус похоже не реагирует на эту строчку.

Добавлено (26.12.2018, 10:48)
---------------------------------------------

Цитата dimvad ()
Как минимум, чтоб в 4520 сконфигурировать первые 5 входов как аналоговые надо, чтоб ADCON1 = %00001010.
Да, согласен с Вашим замечанием. Для контроллера 18F4520 в моём случае такое значение как у меня стоит для регистра ADCON1 не подходит для моей задачи. У меня стоит 11000000, а это значит, что задействованы все возможные выводы как аналоговые, и тогда клавиатура действительно работать не должна. Исправил на то, что Вы посоветовали, но к сожалению пока не помогло.

Сообщение отредактировал vladh - Ср, 26.12.2018, 06:04
ivan_fd Дата: Ср, 26.12.2018, 11:05  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1043
Репутация: 83   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

vladh, что бы скачать на sonsivri нужна регистрация. А там зарегится нереально, почти.

Поставьте 8.7, его найти не проблема.

P.S: вы говорите, что переделываете под контроллер 4520, а в протеусе у Вас 4458.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Ср, 26.12.2018, 11:34
vladh Дата: Ср, 26.12.2018, 13:28  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 280
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата ivan_fd ()
P.S: вы говорите, что переделываете под контроллер 4520, а в протеусе у Вас 4458.
Ну Иван, Вы молодчина. А я два дня и себе и Вам мозги компосирую. И что интересно заставил в Протеусе работать этот код, который делал под 4520, чтобы его выполнял 4458. Для этого резисторы, которые весят входных выводах клавиатуры отцепить от земли.
Дело в том, что я начинал эти свои эксперименты с контроллером, который у меня оставался от старой разработки, в которой требовался АЦП с 12 разрядным разрешением, а это был 18F4458, Но затем появилась ПП, которую заказывал под 4520, в котором имеется внутренний кварц. Поэтому печатную плату разложил без внешнего кварца. Но мне купили 18F452! Пришлось переделывать под этот контроллер. И вот когда программа уже почти вся была готова, сам купил 4520. Стал переделывать программу под него и она в Протеусе не пошла. А оказалось дело было не в бобине. Слава богу, что все выяснилось. Иван большое спасибо. dimvad и Вам большое спасибо.
anatol Дата: Ср, 26.12.2018, 21:46  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 591
Репутация: 20   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Только что нашёл
Proteus Professional 8.8 SP1 Build 27031

Скачать программу Proteus Professional 8.8 SP1 Build 27031 (486,10 МБ):
https://turbobit.net/nq11rs32j1aw.html
https://hitfile.net/C5s7IQ2
http://nitroflare.com/view....031.rar
https://douploads.com/j542s6o....mdhttps


Сообщение отредактировал anatol - Ср, 26.12.2018, 21:46
vladh Дата: Чт, 27.12.2018, 05:59  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 280
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

У Козьмы Пруткова есть выражение: "Щелкни кобылу в нос - она махнет хвостом". Эта фраза мне пришла в голову в связи  с выявленной странностью поведения контроллеров с которыми я столкнулся проводя эту свою работу. А именно это PIC18F452, PIC18F4520, PIC18F4458. Причем это явление наблюдается как с живым контроллером так и с виртуальным. А явление заключается в следующем. Для работы используемого мною типа кнопок, я настраиваю выводы контроллера так: 4 вывода, которые ассоциируются с горизонталями клавиатур на выход, а те что с вертикалями (3 вывода) на вход. Так вот оказалось, что когда я включаю ШИМ по ССР1 то вывод PORTB.2 перекидывается в состояние "выход"  и как следствие кнопки правого ряда перестают работать. Я разместил добавочную команду восстановления TRISB.2 = 1 сразу после команды HPWM. Здесь она восстанавливала утраченное свойство.
Может кто догадается как связан "нос кобылы" - оператор HPWM с "её хвостом", т.е. c состоянием направления вывода PORTB(вход/выход)? Я объяснения этому явлению не нашел!
P.S. Теперь версия 8.8, как я понимаю благодаря anatol,  есть у всех.

Сообщение отредактировал vladh - Чт, 27.12.2018, 06:19
ivan_fd Дата: Пт, 28.12.2018, 15:01  |                                                                                                                Сообщение # 10
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1043
Репутация: 83   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

vladh, Тут претензии не к контроллеру, а к компилятору. Он не должен трогать порт B2, так как этот порт не имеет отношения к ШИМ никакого!

Но это не проблема, если внимательно почитать мануал на компилятор, то там написано:

Цитата
Notes
Some devices, such as the PIC16F62x, and PIC18F4xx, have alternate pins that may be used
for Hpwm. The following Declares allow the use of different pins: -
Declare CCP1_Pin Port . Pin ' Select Hpwm port and bit for CCP1 module.
Declare CCP2_Pin Port . Pin ' Select Hpwm port and bit for CCP2 module.


То есть нужно прописать Declare CCP1 и CCP2, и все будет работать.

P.S: что то админ намутил с форумом, не знаю каким чудом я вошел в учетную запись. Никак не входило.


Меня все время преследуют умные мысли...но я быстрее!!!
ivan_fd Дата: Вс, 30.12.2018, 17:12  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1043
Репутация: 83   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Скачать протеус с turbobit так и не смог. Другие ссылки не рабочие.
Нашел тут, торент.


Меня все время преследуют умные мысли...но я быстрее!!!
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не переносится код с одного контроллера на другой
  • Страница 1 из 1
  • 1
Поиск: