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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Бегущая строка (проблема с портами)
Бегущая строка
werewolf Дата: Ср, 22.09.2010, 17:46  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 01.07.2010

Статус: Offline

Я заранее извиняюсь если этот вопрос уже был поиск ничего не дал.
Так вот проблема в следующем допустим пишем самый простой код "бегущая строка" все светодиоды подключены путь будет порт В вывожу на
PORTВ.0 = 1
PAUSE 500
PORTB.1 = 1
pause 500
PORTB.2 = 1
и т.д. так вот когда включаешь следующий светодиод гаснет предыдущий хотя я его не выключал у меня из-за этого столько проблем было в проектах почему он выключается сам?
ЯНДЕКС Дата: 22.09.2010
deskjet Дата: Ср, 22.09.2010, 18:21  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Какой контроллер?

За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
werewolf Дата: Ср, 22.09.2010, 19:01  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 01.07.2010

Статус: Offline

контроллер 12F675
вот код: первая ножка под АЦП (причем если раскоментировать строку ;ansel = %00000001 то тогда последние ножки gpio.4 gpio.5 сами не выключаются) только непойму при чем тут ansel ?

@ device pic12F675, intrc_osc, wdt_on, pwrt_on, protect_off, mclr_off, bod_on
define osc 4
DEFINE ADC_BITS 10 '
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50

'trisio = %00000001
;ansel = %00000001
;adcon0 = %00000011
;gpio = %00000000
pause 50
;-----------------------------------------------------
;--------------------------------------MAIN---------------------------
main:
gpio.0 = 1
pause 50
gpio.1 = 1
pause 50
gpio.2 = 1
pause 50
gpio.4 = 1
pause 50
gpio.5 = 1
pause 50
'-----------------
low gpio.0
pause 50
low gpio.1
pause 50
low gpio.2
pause 50
low gpio.4
pause 50
low gpio.5
pause 50
goto main

deskjet Дата: Ср, 22.09.2010, 19:10  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

ansel - это, видимо, вроде adcon0 то есть устанавливает определенные значения битов в каком-то регистре.
Нужно смотреть документацию на PicBasicPro, сам я в нем пока не силен.


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
demanik Дата: Ср, 22.09.2010, 21:57  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Если у вас gpio.0 аналоговый вход то почему вы им управляете как выходом?

gpio.3 может быть только входом!!!

в архиве рабочий комплект

Прикрепления: beg_stroka.rar (12.1 Kb)


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Ср, 22.09.2010, 22:14
ivan_fd Дата: Ср, 22.09.2010, 22:01  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Ansel это не PicBasicPro, а регистр контроллера, отвечающий какой вход будет аналоговый, а какой цифровой.

Вам нужно включить все входы цифровыми. И зачем Вам сторожевой таймер, Вы ж его не сбрасываете?
Хотя, по моему компилятор сам за ни следит, но может я и ошибаюсь.

Dmitry Дата: Ср, 22.09.2010, 22:43  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

за сторожевым компилятор следит сам,всегда включаю и никогда не сбрасываю. Надежность-с.
werewolf Дата: Чт, 23.09.2010, 11:29  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 01.07.2010

Статус: Offline

Спасибо теперь понятно что это было я думал компилятор по умолчанию сам ставит выводы в цифровой режим.
По поводу gpio.0 то я просто проверял и забыл стереть.
retas Дата: Пт, 24.09.2010, 22:10  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Не шутите сo сторожевой собакой - если включаете, в каких то местах должны его сбрасывать иначе програ через 18мс
(кажется столько при 4МГц) будет сбрасываться на начало. Инструмент это тонкий и им своё творение можно и
испортить (например если поставить в прерывах).
Грубо говоря, если вам кажется что в каком то цикле может произайти зацикливание, то в этом цикле собаку
несбрасываете.
holyuser Дата: Пт, 24.09.2010, 23:03  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (retas)
Не шутите сo сторожевой собакой - если включаете, в каких то местах должны его сбрасывать иначе програ через 18мс
(кажется столько при 4МГц) будет сбрасываться на начало. Инструмент это тонкий и им своё творение можно и
испортить (например если поставить в прерывах).
Грубо говоря, если вам кажется что в каком то цикле может произайти зацикливание, то в этом цикле собаку
несбрасываете.

Не пугайте людей, ничего с прогой не произойдет, из-за "сторожевой собаки", ни через 18мс, ни через 18000мс ...
И еще, период "сторожевой собаки" никак не зависит от рабочей частоты контроллера, т.к. у "собаки" свой отдельный генератор.
Как уже было написано в соседней теме, компилятор автоматично вставляет команду сброса "собаки" в необходимых местах генерируемого кода, если в начале программы отсуствует дефиниция: DEFINE NO_CLRWDT 1
retas Дата: Вс, 26.09.2010, 01:24  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Спорить не буду (нет времени вникать), просто вспоминая вопросы типа почему у меня програ доходит до кУда то
и сбрасывается произвольно, либо не работает как надо и т.п., первым делом у неудачника спрашивается - не
включена ли у него собака !!!
Чтоб компилер мог бы сам расставлять сбросы "собаки" ( с PicBasicPro не работаю) не могу поверить.
Если собака через определённое время не сбрасывает прогру на её начало, то какой в ней толк.
ЯНДЕКС Дата: 26.09.2010
holyuser Дата: Вс, 26.09.2010, 12:31  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (retas)
Чтоб компилер мог бы сам расставлять сбросы "собаки" ( с PicBasicPro не работаю) не могу поверить.

Верить не надо, надо читать мануалы, а если тем более с PicBasicPro не работаете, то тогда вообще лучьше промолчать, чем заблуждать людей ...
А тем, кто хочет на практике убедиться, как-же это он так, компилятор, умудряется расставлять clrwdt, предлагаю скомпилировать одну и ту-же программу на PicBasicPro дважды - сначала с дефиницией DEFINE NO_CLRWDT 1, потом без нее, и сравнить размеры полученных результатов. Разница получается именно из-за добавленных clrwdt, в чем можно убедиться просто посмотрев ассемблерный код.
Yrrrec Дата: Сб, 13.10.2012, 23:41  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 22.06.2012

Статус: Offline

gpio.0 = 1
pause 50
HIGH gpio.0
gpio.1 = 1
pause 50
HIGH gpio.1
gpio.2 = 1
pause 50
HIGH gpio.2
gpio.4 = 1
pause 50
gpio.5 = 1
pause 50 доброй ночи! Стыкался с такой проблемой, просто надо добавлять HIGH после Pause.......
Форум Picbasic.ru » Программирование МК » PicBasicPro » Бегущая строка (проблема с портами)
  • Страница 1 из 1
  • 1
Поиск: