Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
Помощ за програма за бутон 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Помощ за програма за бутон
Здравейте,
опитвам се да напиша една проста програма за бутон и нещо не ми се получава.
Ето това правя:


Device 12F629

CMCON = 7
Output 4
bp var Byte
bp = 0
mainloop:
Button GPIO.5,1,50,20,bp,0,led
GPIO.4 = 1
led: GPIO.4 = 0
GoTo mainloop:

След като компилирам файла и пусна симулация в PIC Simulator IDE , на изхода има едно постоянно мигане , ако пусна симулация в Proteus изобщо не работи.
Какво да променям?


Чет Мар 21, 2013 9:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма за бутон
това какво трябва да е .... ни мяза на асемблер ни .. да не е някакъв бейсик .... с някакви измисляни функции?
Първо мейн лупа ти върти постоянно, нямам идея това Button какво прави, твоя функция ли е или не, като гледам какво следва ми бяза като да е тест бит функция .. въпреки че и това не може да е така написано ...


Чет Мар 21, 2013 10:58 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Re: Помощ за програма за бутон
Това е бейсик, а button си е команда от бейсик


Пет Мар 22, 2013 10:51 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма за бутон
Аха .. това да не е онова протон ли какво беше ? Тази команда не мога да и разбера всички параметри така че не знам как да ти помогна. Гледам някакъв пример който открих, като гледам е също като при теб, т.е. ако бутона не е натиснат отиваш на led, предполагам това 50,20 е свързано с дебонсинга, bp може би е променлива която взема статуса на бутона, 0 няма идея какво е, може би състоянието при което се отива в последващия параметър led .... само тая единица след порта не знам какво значи.
Та ...ако е така би следвало като натиснеш бутона светодиода да светне, то зависи как си го вързал, дали към маса или към +. Обаче как работи самата команда бутон не мога да ти кажа, възможно е там нешо да не е наред, нямам представа. отделно гледам при теб дефиницията на пина е GPI0.5 а в примера който гледам са дефинирали променлива която я дефинират като con 5 каквото и да е това.
Възможно ед да ти е пуснат WDT съответно примигването да е при препълване и ресет на процесора ...

ето виж тука има пример http://melabs.com/samples/PBP-mixed/button.htm

без да те убеждавам нещо, ама що не си сложиш едно С и да се почустваш бял човек.


Пет Мар 22, 2013 11:44 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Помощ за програма за бутон
Протон е :) Признавам си че пиша на Протон, ама никога не съм ползвал тая функция. Виж си хелпа обаче. Ако бутона е натиснат, ще отиде на лейбъла лед. Ако не е пак ще отиде, ама първо ще мине през gpio.4=0 :) демек все тая.
ако искаш да има ефект това трябва след гпио.4=0 да имаш още един гото маинлооп... Честно казано (като му знам на протона тия изкилиферчените функцики) никога не бих го ползвал това и не бих разчитал на него.
1-цата след порта значи кое да се приеме за натиснато ниво.


Съб Мар 23, 2013 11:13 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Re: Помощ за програма за бутон
Да на Протона го пиша.
Това е синтаксиса на командата:
Button


Syntax
Button Pin, DownState, Delay, Rate, Workspace, TargetState, Label

Overview
Debounce button input, perform auto-repeat, and branch to address if button is in target state.
Button circuits may be active-low or active-high.

Operators
Pin is a Port.Bit, constant, or variable (0 - 15), that specifies the I/O pin to use. This pin will
automatically be set to input.
DownState is a variable, constant, or expression (0 or 1) that specifies which logical state occurs
when the button is pressed.
Delay
is a variable, constant,
or expression
(0 - 255)
that specifies how long
the button must be
pressed
before auto-repeat starts. The delay
is measured in cycles of the Button
routine. Delay
has
two special settings: 0 and 255. If Delay
is 0, Button
performs no debounce or auto-repeat.

If
Delay is 255, Button
performs debounce,
but no auto-repeat.
Rate

is a variable, constant, or expression (0 – 255) that specifies the number of cycles be-
tween auto-repeats. The rate is expressed in cycles of the Button routine.
Workspace is a byte variable used by Button for workspace. It must be cleared to 0 before being
used by Button
for the first time and should not
be adjusted outside of the Button
command.

TargetState
is
a variable,
constant, or expression (0 or
1) that specifies which
state the button
should
be in for a branch to occur. (0
= not pressed, 1 = pressed).
Label
is a label that specifies where to branch
if the button is in the target state.

Ползвам Протон ,защото не можах да намеря Micro Code Studio за 64 битов Уиндоус .
Май наистина трябва да започна на С.


Съб Мар 23, 2013 9:56 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Помощ за програма за бутон
Имам едно неприятно усещане че изпозлването на тази команда те забива в един цикъл с продължителността на дебонсинга ама ... а с тоя репийт рейт ... може и да се окаже за по дълго, т.е. ще те върти в самата функция и евентулно ще те праща на лейбъла .. знам ли гокак е писано, ама дори само за времето на дебонсинга да те държи ми се струва неприятна работа.
За C тука има доста линкове, CCS се мотае, мойто според мен за пикове не е лош, но там няма чак толкова направени функции, или пуне нямаше навремето, в новите версии може и да са се появили.


Нед Мар 24, 2013 10:14 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Помощ за програма за бутон
Точно това прави - както и много голяма част от по засуканите и "уж" много удобни команди на протона. Затова както казах не ги ползвам.


Нед Мар 24, 2013 12:55 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Май 27, 2011 8:25 am
Мнения: 134
Местоположение: Силистра
Мнение Re: Помощ за програма за бутон
инициализирай си портовете и ше тръгне

_________________
Изображение


Нед Мар 24, 2013 3:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Помощ за програма за бутон
И какво да им инициализира? CMCON=7 прави всички цифрови, а Output 4 прави GPIO.4 изход... другите са входове (дифолт при резет)... Нема да тръгне.
За идеята да светне леда като се натисне бутона : GPIO.4=GPIO.5
Е няма дебоунс, ама ще работи...


Нед Мар 24, 2013 7:26 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Re: Помощ за програма за бутон
GPIO.4=GPIO.5 така наистина работи, ама как трябва да стане ако искам да има задръжка по време при изключване на бутона ?


Пон Мар 25, 2013 11:03 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Помощ за програма за бутон
bgeorgiev написа:
GPIO.4=GPIO.5 така наистина работи, ама как трябва да стане ако искам да има задръжка по време при изключване на бутона ?


В горния ти пост думичката "трябва" бърка цялата работа...

http://hackaday.com/2010/11/09/debounce ... -them-all/

виж колко много различни начини има...

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пон Мар 25, 2013 11:29 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Re: Помощ за програма за бутон
Наистина има ама за С.
Благодаря все пак.


Пон Мар 25, 2013 4:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Помощ за програма за бутон
Останах с впечатление че това също е вариант за теб. И като гледам еднакво лесно/трудно ще ти бъде и с бейсик и със С.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Пон Мар 25, 2013 4:15 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Фев 05, 2013 10:41 pm
Мнения: 10
Мнение Re: Помощ за програма за бутон
Е ще почета малко и на С ще се пробвам. :)


Пон Мар 25, 2013 9:25 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни