Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » Бегущий светодиод. (Где то ошибка в программе.)
Бегущий светодиод.
Zombie47 Дата: Пт, 04.09.2015, 02:19  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Новенький
Сообщений: 7
Репутация: 0   ±
Замечания:   ±
На сайте с 30.08.2015

Статус: Offline

По примеру все получается, но вот кое что почитал поглядел и пробую сделать так сказать своим методом из головы, и понимаю что хрень но не понимаю в чем конкретно.

LED var portb 'переименовываю порб в более читабельное название led
sw var byte'создаю переменную sw которая сможет принимать значение с максимальным значением в байт

PortB = %00000000

TrisB = %00000000

main:

   for sw = 0 to 7 ' задаю цикл с шагом 1 от 0 до 7
   led = sw ' как я понимаю хрень тут, но не понимаю почему не работает как надо, вроде как порту б я присваиваю значение от 0 до 7 за каждый проход, тоесть я планирую что сначала у меня тут будет portb.0 потом будет portb.1 и тд

   high LED ' подаю напряжение на portb на вывод sw который зависит от цикла
   
   pause 100

   low led

   next

   for sw = 7 to 0 step -1

   led = sw
   high led
   
   pause 100

   low led

   next

   goto main
END
ЯНДЕКС Дата: 04.09.2015
ADMIN Дата: Пт, 04.09.2015, 07:58  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1117
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Какой смысл с этих строчек:

high LED ' подаю напряжение на portb на вывод sw который зависит от цикла 
pause 100 
low led
если в цикле for уже организовано присвоение порту какого то значения?
И вообще, КАК надо?
anatol Дата: Пт, 04.09.2015, 09:19  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Хрень в отличиях двоичной и десятичной арифметики. Поточнее - в представлении чисел.
ivan_fd Дата: Пт, 04.09.2015, 09:40  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Специалист
Сообщений: 915
Репутация: 54   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата Zombie47 ()
led = sw ' как я понимаю хрень тут,


 Да Вы правильно понимаете. Вы хотите, что бы был бегущий "огонек"?
А в Вашем случаи будет, 0b00000001; 0b00000010; 0b00000011; 0b00000100;.....

Делайте сдвигом


Меня все время преследуют умные мысли...но я быстрее!!!
Gysmi Дата: Пт, 04.09.2015, 20:07  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 47
Репутация: 0   ±
Замечания:   ±
На сайте с 23.12.2011

Статус: Offline

У вас он мигать только будет и то как   попало..
Начинай с простого,в циклы не лезь.
High PORTB.0
pause 1000
LOW PORTB.0
pause 1000
High PORTB.1
pause 1000
Low PORTB.1
и т.д
Форум Picbasic.ru » Программирование МК » PicBasicPro » Бегущий светодиод. (Где то ошибка в программе.)
Страница 1 из 11
Поиск: