| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Помощ за програма за бутон http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=11215 |
Страница 1 от 2 |
| Автор: | bgeorgiev [ Чет Мар 21, 2013 9:14 pm ] |
| Заглавие: | Помощ за програма за бутон |
Здравейте, опитвам се да напиша една проста програма за бутон и нещо не ми се получава. Ето това правя: 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 изобщо не работи. Какво да променям? |
|
| Автор: | ToHu [ Чет Мар 21, 2013 10:58 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
това какво трябва да е .... ни мяза на асемблер ни .. да не е някакъв бейсик .... с някакви измисляни функции? Първо мейн лупа ти върти постоянно, нямам идея това Button какво прави, твоя функция ли е или не, като гледам какво следва ми бяза като да е тест бит функция .. въпреки че и това не може да е така написано ... |
|
| Автор: | bgeorgiev [ Пет Мар 22, 2013 10:51 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Това е бейсик, а button си е команда от бейсик |
|
| Автор: | ToHu [ Пет Мар 22, 2013 11:44 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Аха .. това да не е онова протон ли какво беше ? Тази команда не мога да и разбера всички параметри така че не знам как да ти помогна. Гледам някакъв пример който открих, като гледам е също като при теб, т.е. ако бутона не е натиснат отиваш на led, предполагам това 50,20 е свързано с дебонсинга, bp може би е променлива която взема статуса на бутона, 0 няма идея какво е, може би състоянието при което се отива в последващия параметър led .... само тая единица след порта не знам какво значи. Та ...ако е така би следвало като натиснеш бутона светодиода да светне, то зависи как си го вързал, дали към маса или към +. Обаче как работи самата команда бутон не мога да ти кажа, възможно е там нешо да не е наред, нямам представа. отделно гледам при теб дефиницията на пина е GPI0.5 а в примера който гледам са дефинирали променлива която я дефинират като con 5 каквото и да е това. Възможно ед да ти е пуснат WDT съответно примигването да е при препълване и ресет на процесора ... ето виж тука има пример http://melabs.com/samples/PBP-mixed/button.htm без да те убеждавам нещо, ама що не си сложиш едно С и да се почустваш бял човек. |
|
| Автор: | Cekins [ Съб Мар 23, 2013 11:13 am ] |
| Заглавие: | Re: Помощ за програма за бутон |
Протон е ако искаш да има ефект това трябва след гпио.4=0 да имаш още един гото маинлооп... Честно казано (като му знам на протона тия изкилиферчените функцики) никога не бих го ползвал това и не бих разчитал на него. 1-цата след порта значи кое да се приеме за натиснато ниво. |
|
| Автор: | bgeorgiev [ Съб Мар 23, 2013 9:56 pm ] |
| Заглавие: | 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 битов Уиндоус . Май наистина трябва да започна на С. |
|
| Автор: | ToHu [ Нед Мар 24, 2013 10:14 am ] |
| Заглавие: | Re: Помощ за програма за бутон |
Имам едно неприятно усещане че изпозлването на тази команда те забива в един цикъл с продължителността на дебонсинга ама ... а с тоя репийт рейт ... може и да се окаже за по дълго, т.е. ще те върти в самата функция и евентулно ще те праща на лейбъла .. знам ли гокак е писано, ама дори само за времето на дебонсинга да те държи ми се струва неприятна работа. За C тука има доста линкове, CCS се мотае, мойто според мен за пикове не е лош, но там няма чак толкова направени функции, или пуне нямаше навремето, в новите версии може и да са се появили. |
|
| Автор: | Cekins [ Нед Мар 24, 2013 12:55 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Точно това прави - както и много голяма част от по засуканите и "уж" много удобни команди на протона. Затова както казах не ги ползвам. |
|
| Автор: | Бай Ставри [ Нед Мар 24, 2013 3:27 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
инициализирай си портовете и ше тръгне |
|
| Автор: | Cekins [ Нед Мар 24, 2013 7:26 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
И какво да им инициализира? CMCON=7 прави всички цифрови, а Output 4 прави GPIO.4 изход... другите са входове (дифолт при резет)... Нема да тръгне. За идеята да светне леда като се натисне бутона : GPIO.4=GPIO.5 Е няма дебоунс, ама ще работи... |
|
| Автор: | bgeorgiev [ Пон Мар 25, 2013 11:03 am ] |
| Заглавие: | Re: Помощ за програма за бутон |
GPIO.4=GPIO.5 така наистина работи, ама как трябва да стане ако искам да има задръжка по време при изключване на бутона ? |
|
| Автор: | Zdrav [ Пон Мар 25, 2013 11:29 am ] | |||||||||
| Заглавие: | Re: Помощ за програма за бутон | |||||||||
В горния ти пост думичката "трябва" бърка цялата работа... http://hackaday.com/2010/11/09/debounce ... -them-all/ виж колко много различни начини има... |
||||||||||
| Автор: | bgeorgiev [ Пон Мар 25, 2013 4:06 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Наистина има ама за С. Благодаря все пак. |
|
| Автор: | Zdrav [ Пон Мар 25, 2013 4:15 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Останах с впечатление че това също е вариант за теб. И като гледам еднакво лесно/трудно ще ти бъде и с бейсик и със С. |
|
| Автор: | bgeorgiev [ Пон Мар 25, 2013 9:25 pm ] |
| Заглавие: | Re: Помощ за програма за бутон |
Е ще почета малко и на С ще се пробвам. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|