Пост N: 25
Зарегистрирован: 31.01.08
Откуда: SU, Москва
Рейтинг:
0
Отправлено: 27.02.09 01:17. Заголовок: Подтягивающие резисторы и симуляция
Ситаация : в устройстве две кнопки, подключены к RB7, RB6, соотв уход в прерывание по их нажатию- замыканию на землю. Если симулятором выбран PROTEUS, то после вкючения подьягивающих резисторов на этих выводах устанавливаются 1, флаг RBIF поднимается (как и должно быть), я его тут же сбрасываю(пробывал и сразу и вместе с разрешением прерываний и после чтения порта В) - не сбрасывается. Соотв. -паразитный уход в прерывание. А если симулятор MPLAB SIM, то после включения резисторов 1 вообще не появляется. Глюк то где? mplab 8.0
Отправлено: 27.02.09 21:46. Заголовок: В 8.10 встречал стра..
В 8.10 встречал странности. Необъяснимые. Т.е. в 7.52 работает, в железе работает. в 8.10 не работает , ошибка. типа: movwf reg : неправильно указана функция.
Пост N: 26
Зарегистрирован: 31.01.08
Откуда: SU, Москва
Рейтинг:
0
Отправлено: 01.03.09 01:03. Заголовок: ..........
................................................................ bsf STATUS,RP0 ; Переход в 1-й банк. bcf OPTION_REG,NOT_RBPU ; включить подтягивающие резисторы ...Здесь поднимается RBIF, но только movlw b'11000000' ;0,1-выход,8,7-вход(кнопки)................................ в Протеусе, 1 на PORTB тоже самое movwf TRISB ; выводы порта B movf PORTB,W ; Опрос состояния порта B. bcf INTCON,RBIF ; .............................................................................не сбрасывает! .................................... .................................... movlw b'11001000' ; Глобальное разрешение прерываний и................... Тоже не сбрасывает!! movwf INTCON ; разрешение прерываний от периферийных модулей,RB7-RB4 После этой строчки паразитный уход в прерывание Получается, что RBIF можно сбросить только в пп прерывания? И как обойти? И почему при включении подтягивающих резисторов в MPLAB SIM нет реакции - установления 1 на выводах порта? Хотя если это иметь в виду и устанавливать 1 стимулом, то обойтись можно.
Пост N: 85
Зарегистрирован: 04.05.07
Откуда: Беларусь, Минск
Рейтинг:
1
Отправлено: 01.03.09 20:03. Заголовок: Начните с того, что ..
Начните с того, что уберите из программы весь лишний код и оставьте только то, что вызывает трудности. Затем, если не получится, выложите сюда целиком этот код. Касаемо тех кусков что вы разместили - кроме того что у вас нету возвраза в 0 банк (!) и включены периферийные прерывания (сначала с RB разберитесь), больше никаких замечаний. И поясните что значит такой коментарий:
цитата:
movlw b'11001000' ; Глобальное разрешение прерываний и................... Тоже не сбрасывает!!
PIC 16F628 : INTCON отображается во всех банках, посему не вижу необходимости переходить в 0, хотя переход ситуации не меняет. Переферийные прерывания используются тоже в программе(TMR2). Значение b'11001000', записанное в INTCON, вроде(по моему мнению) должно бы, кроме разрешения прерываний, сбросить и RBIF( 0-й бит) Я сейчас вообще только этот кусок кода запустить попробую, для выяснения ситуации.
Короче, спасибо kroko, он меня про 0 банк ткнул, да, INTCON, находится везде, но PORTB только в 0 а без его чтения RBIF не сбрасываеся. С одним вопросом разобрался, остался только почему в MPLAB SIM при включении резисторов на PORTB 1 не появляются? Сейчас в другом MPLABe попробую.
org 0 ; Начать выполнение программы с нулевого адреса PC. goto Start ; Переход в ПП Start. org 4 ; Начать исполнение ПП прерывания c команды, ; которая, в PC, имеет адрес 04h. ;******************************************************************************** INT bcf STATUS,RP0 movf PORTB,W ; Опрос состояния порта B. bcf INTCON,RBIF Start clrf INTCON ; запрет всех прерываний bsf STATUS,RP0 ; Переход в 1-й банк. bcf OPTION_REG,NOT_RBPU ; включить подтягивающие резисторы movlw b'11000000' ;0,1-выход,8,7-вход(кнопки) movwf TRISB ; выводы порта B bcf STATUS,RP0 movf PORTB,W ; Опрос состояния порта B: БЕЗ ЭТОЙ СТРОЧКИ НЕ РАБОТАЕТ bsf STATUS,RP0 movlw b'11001000' ; Глобальное разрешение прерываний, сброс RBIF movwf INTCON ; разрешение прерываний от периферийных модулей,RB7-RB4 bcf STATUS,RP0 ; Переход в 0-й банк.
Пост N: 29
Зарегистрирован: 31.01.08
Откуда: SU, Москва
Рейтинг:
0
Отправлено: 01.03.09 21:45. Заголовок: в 5.70.40 тоже самое..
в 5.70.40 тоже самое: на bsf STATUS,RP0 ; Переход в 1-й банк. bcf OPTION_REG,NOT_RBPU ; включить подтягивающие резисторы никакой реакции со стороны PORTB
Спасибо! Получается, что в MPLAB SIM необходимо всё же пользоваться стимулом, по умолчанию входы находятся в 0 и на включение резисторов не отзываются.
Пост N: 715
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 02.03.09 16:08. Заголовок: Совершенно верно. О..
Откуда MPLABу знать про "периферию", ведь он работает с "виртуальным" ПИКом? А выставить чего-то нужно (иначе - бардак). Вот он и выставляет. Или по умолчанию, или по результату того, что задано в стимуле. При работе выводов портов "на вход", советую отдать предпочтение не работе с функциями стимула, а моделированию ситуации в голове (можно и в Протеусе, но это более низкое качество) и программным "уловкам". Лично я, ориентируюсь на последнее (функции стимула и Протеус мне просто не нужны). Это способствует усиленному размножению серых клеточек (попахать придется, но в проигрыше не будете).
PS: спасибо за въедливость (наш человек). Вот и еще одну деталь выяснили. Вывод: "зер гут". Польза всем.
Пост N: 599
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 02.03.09 20:09. Заголовок: А вот никто не пробо..
А вот никто не пробовал выставлять единицы на входах в 18 пиках в симуляторе? Допустим в симуляторе для AVR AVR Studio(аналог лаба от ATMEL) выставляются единицы на входах. И нет геморроев со стимулом, решается отладочными командами в программе. Если проводить аналогию то AVRы и 18 пики в отношении работы с портами схожи.
Пост N: 719
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 02.03.09 22:07. Заголовок: Зачем, в том деле..
Зачем, в том деле, в котором можно обойтись без посредников, они нужны? Какой смысл симулировать ожидаемый уровень на выводе порта, работающем "на вход", если человек точно знает, каким он будет на самом деле? Да ему, после этого, глубоко наплевать на все функции стимула вместе взятые (сужу по себе. В меру испорченности). Вся сложность в том, чтобы знать. И знать капитально. Как "отче наше". Разве трудно разобраться в уровнях, формируемых, например, с помощью кнопки? Хоть с внешней подтяжкой, хоть с внутренней. При условии успешности подобного рода "разборок", биокомпьютер десять раз (условно) "уроет" любую функцию стимула, а заодно и многих других посредников! Из этого "суперважняка" (на мой взгляд) следуют специфические, практические выводы, в которых нет места не только функциям стимула, но и Протеусу, и прочим посредникам. На "разборки" с ними отвлекается много сил/времени, которые можно употребить с бОльшим толком (напоминаю про "сыр в мышеловке"). MPLAB не в счет. Это "святое", но с поправкой: в части касающейся того, без чего обойтись нельзя. Сказанное вовсе не претендует на истину. Просто высказываю свое мнение, основанное на личном опыте. Просьба сильно не ругаться по этому поводу. Какой есть, такой есть. И в мыслях нет на кого-то давить. Просто думы вслух.
Отправлено: 09.04.13 09:01. Заголовок: Если что спросить хо..
Если что спросить хотите по вопросам написания программ , так спрашивайте. Вам здесь постараются ответить. А если имеете желание пообщаться только лично с Корабельниковым Е., тогда увы.
Отправлено: 23.04.13 10:25. Заголовок: Уважаемый Igor ! Я ..
Уважаемый Igor !
Я не умею программировать. Нашел на форуме один пример, который меня заинтересовал. В ПРОТЕУСЕ набрал конечный вариант схемы на основе того примера. Теперь мне нужно довести тот пример, который я взял за основу, под мою схему : привязать кнопки и задать им выполнение соответствующих функций, запрограммировать вывод информации через МАХ232 на СОМ-порт для вывода информации на компьютер и отображения ее на мониторе компьютера в окне терминала , запрограммировать обработку сигналов от энкодера. Ну с энкодером - это отдельная тема - там еще небольшая хитрость нужна будет. Сейчас нужно "привязать" все кнопки и сделать вывод информации на СОМ-порт. Ищу кто может помочь.
Пост N: 644
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг:
1
Отправлено: 23.04.13 14:01. Заголовок: iparktur Если Вы де..
iparktur Если Вы действительно хотите завершить задуманное, лучше это сделать на основном форуме chipmk пройдя простую регистрацию и открыв тему в соответствующем разделе. Этот форум ограничен в возможностях, в основном как архив для начинающих и обсуждения общих вопросов программирования. Открывайте свою тему и будите приятно удивлены скоростью её продвижения! С уважением, администрация ChipMk.
Я там обращался к нескольким активным участникам, в том числе и к автору исходника. Все дают советы рассчитанные на программиста, а я не программист. Поэтому самостоятельно не могу составить программу.
Пост N: 264
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг:
3
Отправлено: 23.04.13 19:02. Заголовок: Ув iparktur, в любом..
Ув iparktur, в любом случае, за Вас никто делать ничего не будет, хоть на этом форуме, хоть на том. Вам нужно самому делать, а с вопросами обращаться на форум.
Пост N: 645
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг:
1
Отправлено: 23.04.13 19:50. Заголовок: iparktur Ни чего ст..
iparktur Ни чего страшного. В правильно заданном вопросе 90% ответа. У досикуса много амбиций, все недостойные, тупые и тд. Фильтруйте его посты, зёрна там есть. Правда надо терпением запастись, если переходит на унижение и оскорбление, жмите жалобу. Не подействует, примем меры. Он на своей волне, иногда тупит, иногда специально провоцирует. Прога у Вас на СИ? Я на асме пока, в СИ не помощник. Выкладывайте что вы хотите сделать кодом или алгоритмами, Вам подскажут. Иногда надо просто достучаться!
Отправлено: 23.04.13 20:32. Заголовок: Источник, который я ..
Источник, который я взял за основу, принадлежит Alex-у. Программа, как я понял, написана на СИ и скомпилирована под XC8. Я пытался под HI-TECH переделать, но, хоть проект и компилировался, постоянно выдавалось сообщение BUILD FILED.
Я скачал и проинсталлировал компилятор XC8-v1_12-win Сам MPLAB IDE у меня остался старый (v8.76). Сейчас проект у меня нормально раскрывается и компилируется под XC8 без ошибок. Т.е. уже есть какой-то прогресс. Проект находится здесь :
Я могу в готовом проекте что-то немного подкорректировать, в крайнем случае у кого-то проконсультироваться и что-то подправить, но создавать проект я не осилю.
Вот сейчас надо , изначально, хотя бы добавить кнопки (так, как в схеме проекта) чтоб они выполняли предназначенные им функции и сделать выход на МАХ232 под СОМ-порт, чтоб можно было информацию от микроконтроллера дублировать на мониторе компьютера (в окне терминала). Т.е. чтоб информация с LED-индикаторов дублировалась на мониторе компьютера.
Энкодер - это самое сложное - пока без него. По нему - отдельная тема.
Пост N: 373
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг:
1
Отправлено: 24.04.13 09:11. Заголовок: iparktur пишет: Я м..
iparktur пишет:
цитата:
Я могу в готовом проекте что-то немного подкорректировать
Это моё суждение по вопросу. Дилетант в программировании. 1. Можно обратиться к автору приглянувшегося проекта и вежливо попросить изменить проект под Вашу задачу. Тогда не придется осваивать программирование ни в каком объёме. Получите hex, зашьёте в МК, испытаете в железе. Судя по Вашей дополнительной части в схеме, этот дополнительный объем программы существенный. Составьте для себя типа таблицы; слева - что есть в задаче , справа - чем дополнить. Был такой забытый теперь ученый, А. Берг. Он учил, что поправить систему нельзя, её можно только сломать. 2. Шаг за шагом освоить программирование (на асм, С - дело вкуса и собственного представления). Добравшись до высот понимания проекта автора, дополнить (изменить) программу под свою задачу. Это обычный, долгий путь. Профессия. Решать Вам. О Вашем проекте. Попытался открыть. В Протеусе схема открывается, наращивается значение на 4LED_7seg. Coff файл ущербный, не позволяет использовать просмотр Си программы и отладку в Протеусе. Только hex. Гашения левых нулей нет. Работает кн. "Сброс". Всё. MPLAB проект не открывает. Автор - спец. по Си. Уважаю. Но, для меня проще сделать свою программу в привычной среде, по своим способностям. Сам выбрал бы МК средней серии под Вашу задачу, но это - дело вкуса.
Сейчас должно все открываться. Нули я специально зажег, т.к. хочу, чтоб информация выводилась в формате : 00,25 или 01, 65 или 25,48, т.е. чтоб все 4-ре цифры всегда горели. На а я не дилетант в программировании - я вообще не программист и к программистам себя не отношу.
Отправлено: 25.04.13 07:09. Заголовок: Уважаемый Alex! Я ж..
Уважаемый Alex!
Я же Вас не упрекаю! Я реально вижу какую огромную работу Вы проводите на сайте, сколько оказываете помощи людям, но, думаю, что это только "надводная часть айсберга", т.е. Вашей работы.
Подскажите под каким компилятором Вы создавали проект ENC_Bar.rar ( в разделе "Обслуживание энкодера") :
Пост N: 267
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг:
3
Отправлено: 28.04.13 22:10. Заголовок: USART - это не прото..
USART - это не протокол, а интерфейс связи. И для его реализации вовсе не нужно никаких библиотек. Достаточно открыть даташит на "подопытный" МК и посмотреть какие регистры за что отвечают.
Пост N: 268
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг:
3
Отправлено: 28.04.13 23:26. Заголовок: У Вас ощибка в этой ..
У Вас ощибка в этой строке :
цитата:
Kn_Plus.click=0
о чём было не трудно догадаться, т.к. после неё любая строка даёт ошибку. Мало того, на ошибку тоже иногда нужно смотреть, компилятор даёт знать где ошиблись.
Я в строке Kn_Plus.click=0 пропустил ; в конце строки. Но, в принципе, что в этом примере (123), что у меня условия одинаковые: статическое состояние входа кнопки =1 (от подтягивающего резистора), а активное =0 (при нажатой кнопке). Я подкорректировал эту строку Kn_Plus.click=0; Но ошибка все равно осталась на той же строке :
При компиляции стрелка ошибки указывает на ту же строку
if (Kn_Plus.click){ Kn_Plus.click=0; val.prev=+1; - вот на эту строку
Он стал компилироваться под ХС8 без ошибок, но не запускается. Когда в ПРОТЕУСЕ раскрывается , то просто "висит" в статике. Такое впечатление, что не запускается микроконтроллер.
Все даты в формате GMT
3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет