Stránka 1 z 1
if a then u procesorů PIC
Napsal: 25 zář 2006, 10:50
od IceM
Ahoj,
začínám programovat uP PIC a nějak si nemůžu zvyknout na asambler u PICů.

Třeba jak napsat kód IF ... THEN ... ELSE. Doporučte mě nějaký odkaz kde jsou tyto kódy v asm popsaný abych to mohl nastudovat, konkrétně to IF,THEN,ELSE.
Děkuju
Napsal: 25 zář 2006, 11:22
od Návštěvník
vysoko rubes..., ze IF, THEN, ELSE... to si musis pekne vykonat nejaku operaciu a podla nastavenych priznakov - bitov si vetvit program...
Napsal: 26 zář 2006, 00:13
od Návštěvník
čista pravda,škoda že to neni ako turbo pascal

Napsal: 26 zář 2006, 08:03
od mikollar
ale ved existuje prekladac s pascalu na asm, ked sa nemylim[/u]
Napsal: 26 zář 2006, 08:09
od MiLe
Nieco ako Pacsal pre PIC existuje ale nemam s tym skusenosti. Navyse otazka bola ako to robit v ASEMBLERI pre PIC...
Ja som ten anonym, ktory vyszie pisal o vysokom rubani, sorry - nebol som prihlaseny
Napsal: 26 zář 2006, 08:16
od mikollar
dobra stranka je
http://www.pandatron.info - podla nej som sa aj ja naucil programovat, potom druha dobra stranka je
http://www.cmail.cz/doveda pre pisanie programu je velmi dobry mplab da sa v nom pekne odsimulovat program, obsahuje prekladac do hex formatu a este vela drobnych dobrych veci
Napsal: 26 zář 2006, 10:02
od Návštěvník
Píšu v MikroPascalu a zatím si ho nemůžu vynachválit.Dá se v něm psát i v čistém assembleru (jak v Delphi)
asm
...
...
end;
Jsou v helpu i příklady zapojení včetně ukázkového kódu.Člověk neznalý problematiky programování PIC,ATMEL je podle helpu napsat program během několika minut.
Nutností je znalost pascalu !
Napsal: 26 zář 2006, 10:33
od IceM
MikroPascal to nezní vůbec špatně a mohlo by dost pomoc .... pohledám .... stáhnu ... vyzkouším a dám vědět. Díky za rady všem....
Napsal: 26 zář 2006, 11:20
od IceM
Asi opravdu jednodušší to bude například v mikroPascalu. V asm by to bylo hodně hodně složitý a výsledek

.... No, je to docela očistec ....
Napsal: 26 zář 2006, 12:25
od ViPali
Momentálne nemám veľa času sem chodiť, vo voľnom čase sa pokúšam o tú kávesnicu s 12f629 ale k if then by som sa rád vyjadril.
príklad:
if TEPLO > 0x16 then goto vacsi
else if TEPLO = 0x16 then goto rovne
else if TEPLO < 0x16 then goto mensi
movlw 0x16...........; s čím porovnám
subwf TEPLO,w.....; odpočítam teplo a výsledok do w aby som si nepokazil register TEPLO
movf status,w........; status do w bitC ak pretiekol výpočet, bitZ ak je nula
andlw b0000 0101..; maskujem na Z a C
addwf pcl,f.............; pripočítam k PC
goto mensi ...........; Z=0, C=0 poskočí o 1
goto vacsi..............; Z=0, C=1 poskočí o 2
nop
nop
nop
goto rovne..............; Z=1, C=1 poskočí o 6
ak riešim iba jednu podmienku, tak:
btfsc status,Z........; skontrolujem po odčítaní bit Z, ak je nahodený tak ide moj_program
goto moj_program
_dalej..............; inak pokračuje dalej v činnosti
.
.
.
label: moj_program
Napsal: 27 zář 2006, 08:22
od iceM
ViPali díky za kód. Hodně mi to pomohlo.