skraceni kurs ucenja picbasica

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: stojke369, pedja089, [eDo], trax

Re: skraceni kurs ucenja picbasica

Postby electron » 25-02-2018, 14:15

Siguran sam, kad tasterima izadjem iz greske i ponovo udjem u tu labelu program ide tamo gde treba... Desava se samo prilikom stavljanja PIC-a pod napon
User avatar
electron
 
Posts: 210
Joined: 28-02-2009, 19:20
Location: Serbia

Re: Re: skraceni kurs ucenja picbasica


Re: skraceni kurs ucenja picbasica

Postby WhiteHead » 26-02-2018, 07:21

Nisam gledao kod, ali iz iskustva znam da prvo čitanje temperature traje.
Zato pošalji na čitanje pa onda prikaži neki uvodni natpis, malo pauze, itd
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
WhiteHead
 
Posts: 1526
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: skraceni kurs ucenja picbasica

Postby Black » 27-02-2018, 00:44

Meni svaki put prvo čitanje na DS-u ne odradi kako treba... U većini slučajeva to mi i nije bitno, al sam pravio jedan uređaj gdje to prvo čitanje moralo bit točno.
Rješenje nisam kompliciro, jednostavno ako uđe u grešku, u programu je određeno da pročita ponovo. Ako i nakon drugog pokušaja ne uspije, tek onda ispiši grešku.
I sve radi bez problema
User avatar
Black
 
Posts: 888
Joined: 17-12-2008, 15:44

Re: skraceni kurs ucenja picbasica

Postby AZROCAT » 14-04-2018, 15:10

Code: Select all
STOJIM:                 'NAMIŠTANJE VRIMENA PAUZE
IF PORTD.1 = 0 THEN    'AKO JE PUC + PRITISNUT
PAUZA=PAUZA+1         
PAUSE 200
ENDIF
IF PORTD.2 = 0 THEN     'AKO JE PUC - PRITISNUT
PAUZA=PAUZA-1
PAUSE 200
ENDIF     
IF PORTD.3 = 0 THEN      'AKO JE ENTER PRITISNUT
PAUSE 500 
GOTO RADIM
ENDIF
PAUSE 50
lcdout $FE,1
lcdout $FE,$80, "VRIJEME PAUZE...."
LCDOUT $FE,$C0, "SEC = ", DEC PAUZA
GOTO STOJIM


dobro radi osim što kad pritisnem tipku - ispiše na lcd 65535 i ako opet idem s tipkom + neće da se osvježi lcd tj. ispiše 05535 (ostanu ove 4 znamenke od prije) . kako to riješiti?
AZROCAT
 
Posts: 18
Joined: 01-09-2009, 15:58

Re: skraceni kurs ucenja picbasica

Postby AZROCAT » 14-04-2018, 15:52

ma krivo san pisa za lcdout.
sad je ok
AZROCAT
 
Posts: 18
Joined: 01-09-2009, 15:58

lcd for next

Postby AZROCAT » 21-04-2018, 16:17

Code: Select all
M VAR BYTE
V VAR BYTE
           
START:                 'NAMIŠTANJE VRIMENA PAUZE
IF PORTD.1 = 0 THEN    'AKO JE PUC + PRITISNUT
POKRET=POKRET+1         
PAUSE 400
ENDIF     
IF POKRET => 5 THEN RADIM
PAUSE 400
lcdout $FE,1, "PRITISNI START"
LCDOUT $FE,$C0, "5 SEKUNDI ", DEC POKRET
GOTO START

RADIM:
lcdout $FE,1, "POKRECEM"
LCDOUT $FE,$C0, "STARTNI SLJED"
PAUSE 2000
hiGH porta.0
FOR M=0 to 30
lcdout $FE,1, "PUMPAM GORIVO"
LCDOUT $FE,$C0, "MALA BRZINA", DEC M
M=M+1
pause 1000
next M
LOW PORTA.0
GOTO VELIKA


VELIKA:

HIGH PORTA.1
FOR V=0 to 30
lcdout $FE,1, "ZARNICA ON"
LCDOUT $FE,$C0, "VELIKA BRZINA", DEC V
V=V+1
pause 1000
next V
LOW PORTA.1
END



zašto mi FOR NEXT petlja broji po 2, znači na lcd mi ide 2, 4 , 6 ......????????????' :azdaja:
AZROCAT
 
Posts: 18
Joined: 01-09-2009, 15:58

Re: skraceni kurs ucenja picbasica

Postby pedja089 » 21-04-2018, 23:19

Tako si napisao da radi...
For next sam uvecava promenljivu. A ti u svakom for imas m=m+1. Ako on sam uveca za 1 i ti uvecas za 1 dobijes po prolazu da se uveca za dva.
User avatar
pedja089
 
Posts: 7393
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Postby AZROCAT » 25-04-2018, 12:41

radin program za diesel webasto grijač. u orginalu je radio sa mehaničkom timer sklopkom.
ima 2-brzinski ventilator, žarnicu, te elektroventil diesela koji je serijski spojen sa 2 termoprekidača (jedan u gorivoj komori drugi na izlazu vrućeg zraka).
znači kad držin tipku start duže od 5 sec kreće startna rutina
pali se ventilator mala brzina te elektroventil nekih 40-ak sec. zatim žarnica, elektroventil i velika brzina od toga žarnica samo 30-ak sec. zatim nastavlja samo velika brzina dok ne želim izgasit.
gašenje bi trebalo izgasit elektroventil i nastaviti sa velikom brzinom cca 2 min.

sad san počeo pisat taj program.
izlazi i vrime nisu podešeni definitivno jer mi je lakše simulirat u proteusu.
PROBLEM:
Kako iz radne labele (URADU:) čitat stanje tipke stop i ukoliko je pritisnuta duže od 5 sek ide u stop labelu (TERM:) a ako ne nastavlja sa uradu labelom.
Code: Select all
 clear
M VAR WORD
V VAR WORD
RM VAR WORD
RS VAR WORD
pokret var byte
STO VAR BYTE
trisd=%11111111

'======================================================           
START:                             
IF PORTD.1 = 0 THEN            'AKO JE PRITISNUTA START TIPKA
POKRET=POKRET+1         
PAUSE 400
IF PORTD.1=1 THEN             'AKO JE OTPUŠTENA START TIPKA UNUTAR 5 SEK
pokret=0
ENDIF 
endif   
IF POKRET => 5 THEN RADIM      ' AKO JE START TIPKA DRŽANA DULJE OD 5 SEK
PAUSE 400
lcdout $FE,1, "PRITISNI START"
LCDOUT $FE,$C0, "5 SEKUNDI   ", DEC2 POKRET
GOTO START

RADIM:                        ' POKRETANJE STARTNOG SLJEDA 1
lcdout $FE,1, "POKRECEM"
LCDOUT $FE,$C0, "STARTNI SLJED"
PAUSE 2000
hiGH porta.0
FOR M=0 to 5 STEP 1
lcdout $FE,1, "PUMPAM GORIVO"
LCDOUT $FE,$C0, "MALA BRZINA  ", DEC2 M
pause 1000
next M
LOW PORTA.0
GOTO VELIKA


VELIKA:                  ' STARTNI SLJED 2

HIGH PORTA.1
FOR V=0 to 5 STEP 1
lcdout $FE,1, "ZARNICA ON"
LCDOUT $FE,$C0, "VELIKA BRZINA ", DEC2 V
pause 1000
next V
LOW PORTA.1
goto URADU

URADU:                                    ' OVDJE POČIMA RAD

HIGH PORTA.2
FOR RS=0 TO 60 STEP 1
lcdout $FE,1, "RADIM ....."
LCDOUT $FE,$C0, "VRIME RADA:",DEC2 RM, ":", DEC2 RS
PAUSE 1000
GOSUB TSTOP
NEXT RS
IF RS>=59 THEN
RS=0
RM=RM+1
ENDIF


GOTO URADU


TERM:
LOW PORTA.2
HIGH PORTA.3
PAUSE 10000


TSTOP:
IF PORTD.0 = 0 THEN SS
PAUSE 50          'AKO JE PRITISNUTA START TIPKA
RETURN

SS:
lcdout $FE,1, "PRITISNI STOP"
LCDOUT $FE,$C0, "5 SEKUNDI   ", DEC2 STO

IF PORTD.0 = 0 THEN            'AKO JE PRITISNUTA STOP TIPKA
STO=STO+1
PAUSE 400
GOTO SS
ENDIF
IF STO => 5 THEN TERM
PAUSE 5000
IF STO <5 THEN URADU         

PAUSE 400

GOTO SS


prova san sto načina ali neide
E, I ovi zadnji IF kad stavim endif poslije njih zašto mi microcode izbaci ENDIF WITHOUT IF THEN???
AZROCAT
 
Posts: 18
Joined: 01-09-2009, 15:58

Re: skraceni kurs ucenja picbasica

Postby pedja089 » 25-04-2018, 13:35

U for petlju ubacis ispitivanje tastera samo.
Klasika if then bla bla...
Ako ti je sporo da proverava svake sekunde, ti onda stavi pauzu u petlju od 100ms, i for da ide do 600 umesto do 60.
A za detektovanje drzanja 5sec, stavis ako je taster pusten promenljiva je nula, ako je taster stisnut uvecas je za jedan.
Kada dodje do broja sekundi koliko ti treba ides gde oces...
User avatar
pedja089
 
Posts: 7393
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Previous

Return to Mikrokontroleri - PIC

Who is online

Users browsing this forum: No registered users and 1 guest

GOOGLE