if a then u procesorů PIC

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
IceM

if a then u procesorů PIC

#1 Příspěvek od IceM »

Ahoj,
začínám programovat uP PIC a nějak si nemůžu zvyknout na asambler u PICů. :oops: 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
Návštěvník

#2 Příspěvek 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...
Návštěvník

#3 Příspěvek od Návštěvník »

čista pravda,škoda že to neni ako turbo pascal :(
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#4 Příspěvek od mikollar »

ale ved existuje prekladac s pascalu na asm, ked sa nemylim[/u]
Uživatelský avatar
MiLe
Příspěvky: 123
Registrován: 18 říj 2005, 00:00

#5 Příspěvek 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
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#6 Příspěvek 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
Návštěvník

#7 Příspěvek 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 !
IceM

#8 Příspěvek 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....
IceM

#9 Příspěvek 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 ....
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#10 Příspěvek 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
iceM

#11 Příspěvek od iceM »

ViPali díky za kód. Hodně mi to pomohlo.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“