[ MILANAN @ 08.02.2012. 19:06 ] @
Hteo bih nesto totalno amaterski da se bavi programiranjem na pr da se pomocu 16f84a pali i gasi led dioda pa bih molio ako neko ima da mi posalje taj izvorni kod i da mi napise kako da ga pretvorim u hex.Imam neku literaturu ali jednostavno mi neide pa bih zato da vidim kako izgleda ceo taj izvorni kod sa lid diodama od pocetka do kraja.Hvala unapred
[ Darko_zed @ 08.02.2012. 19:52 ] @
evo ti najprostiji primer gasenja i paljenja led diode na pinu portb.0

Code:

 Program za bilinkanje Led diode na RB.0 pinu
   
   TRISB = $00  ; svi portb pinovi su izlazni

Pocetak:
   PORTB.0 = 0   ;Pin RB.0 ugasena dioda postavljen niski nivo
   pause 1000     ; pauza 1 sekunda sto se ovde izrazava u milisekundama
   PORTB.0 = 1    ;Pin RB.0 upaljena dioda 
   Pause 1000    

   
Goto Pocetak   ;Vrati se ponovo na pocetak programa i tako u krug

End   

ovo ti je dobro za pocetak da ukapiras kako postaviti pin na nizi ili visi nivo to jest kako upaliti i ugasiti diodu , ti sad tu mozes pomocu ovog primera paliti ili gasiti vise dioda pomocu vise pinova ne vezano jedan za drugi kako definises u programu na ovaj nacin

evo ti jedan programcic kako to izvesti na vise pinova tako da pali jednu po jedu ,a posle isto tako i gasi :

Code:
TRISB = $00  ; svi portb pinovi su izlazni
pocetak :
  portb.0 = 1
  pause 1000
  portb.1 = 1
  pause 1000
  portb.2 = 1
  pause 1000
  portb.3 = 1
  pause 1000
  portb.0 = 0
  pause 1000
  portb.1 = 0 
  pause 1000
  portb.2 = 0
  pause 1000
  portb.3 = 0 
  pause 1000
  goto pocetak
  end

Ako nesto opet zapne ti vici na sav glas cujemo te
[ Darko_zed @ 08.02.2012. 19:55 ] @
Kada ovo upises u MCS kliknes na F9 (compile onli) i tamo gde si sacuvao izvorni kod pojavice se hex fajl koji kasnije ucitas u pic pomocu winpic800 programa recimo i to je to(zavisi koji programator imas takodje) , probas kako radi obrises i tako u krug .
[ MILANAN @ 08.02.2012. 20:17 ] @
Probacu samo da prvo prepravim plocicu.Ja imam nesto da se pali i gasi dioda na pin 7 od 16f84 isto je izbacivao i hex ali nije htelo da radi.Javicu se ako mi neproradi,hvala vam
[ ZAS011 @ 08.02.2012. 20:37 ] @
Pa gde sa tim dinosaurusom od PIC-a
[ MILANAN @ 08.02.2012. 20:52 ] @
Kako moze da se stavi da na pr dioda svetli 5 sekunde pa pauza 1 sec pa dioda ponovo 5
[ ZAS011 @ 08.02.2012. 22:00 ] @
Code:
While 1 = 1
    High PORTx.pin
    pause 5000
    low PORTx.pin
    pause 1000
Wend
[ MILANAN @ 08.02.2012. 22:36 ] @
Sad je jasno.Hvala vam
[ MILANAN @ 14.02.2012. 07:54 ] @
Kako mogu da napisem u Basicu za 16f628A i 16f84A da kad pritisnem taster na rb0 da se na rb7 na pr ukljuci dioda i kad ponovo pritisnem isti taster da se dioda ugasi ? Bitno mi je to za taster a program umesto diode mislim da mogu sam da napisem. ( pretpostavljam da nije tesko,pocetnik sam a nikako da nadjem bilo kakvu literaturu za tako nesto ) Hvala unapred.
[ Robinzon Kruso @ 24.02.2012. 21:56 ] @
Ako vec nisi nasao nacin kako da ovo uradis.. eto jednog predloga....

Za vezu gde se dioda pali logickom nulom.


i var bit
TRISB=%00000001 'PORTB.0 je ulazni
i=2 'promenjiva u kojoj pamtimo stanje diode
start:
IF PORTB.0=0 THEN goto odluka 'Uslov koji kontrolise da li je taster pritisnut
GOTO start
END

odluka:
IF i <> 1 then GOTO diodupali 'recimo i kao fleg koji pamti prethodno stanje diode i odlucuje da li je treba ugasiti ili upaliti
if i = 1 then GOTO diodugasi

GOTO start

diodupali:
low PORTB.7
pause 500
i=1
GOTO start

diodugasi:
HIGH PORTB.7
pause 500
i=2
GOTO start


Pokusao sam isti da uradim sa podprogramima ali mi nekako nije poslo za rukom ...

Pozdrav
[ foxhunter1 @ 25.02.2012. 07:16 ] @
Citat:
Robinzon Kruso:
i var bit
TRISB=%000001 'PORTB.0 je ulazni
i=2 'promenjiva u kojoj pamtimo stanje diode

Ovo nece da moze .... promenljiva 'i' je deklarisana kao BIT, a ti si joj dodelio vrednost 2 (i=2)!
Bit moze biti samo 1 ili 0. Zavisno od kompajlera - neki ce prijaviti gresku, a neki ce progledati kroz prste
[ ZAS011 @ 25.02.2012. 08:14 ] @
Sto rece foxhunter1
Evo bez promenljive i

Code:
trisb = %00000001
portb.7 = 0

while 1 = 1
    while portb.0 = 1
        pause 30
    wend

    portb.7 = ~portb.7

    while portb.0 = 0
    wend
wend
[ MILANAN @ 02.03.2012. 21:08 ] @
Ovo radi super

Code:
trisb = %00000001
portb.7 = 0

while 1 = 1
while portb.0 = 1
pause 30
wend

portb.7 = ~portb.7

while portb.0 = 0
wend
wend

jedin da pitam sta znaci ( ~ ) ?
[ veselinovic @ 02.03.2012. 21:10 ] @
Ocito negacija
[ MILANAN @ 02.03.2012. 21:35 ] @
Moze li savet kako da napisem u basicu jedan kod a pic je 16f628a. Potrebno je da ima dva tastera i da se na nekom pinu pojavljuje frekvencija na pr 1KHZ pa dok drzim jedan taster frekvencija da se povecava i kad pustim taster da ostane na koliko je podesena i dok drzim drugi taster frekvencija da se smanjuje i kad ga pustim isto da frekvencija ostane na koliko je podesena
[ ZAS011 @ 02.03.2012. 22:45 ] @
Za tako nesto ces morati da predjes na nivo koji je sledeci posle "blink led".

Da ti pisemo programcice, a da ti ne ukljucijes svoje male sive celije u pogon, bas nije u redu.

Bez ljutnje, potrudi se barem da naucis da koristis HELP kompajlera koji koristis.
[ MILANAN @ 03.03.2012. 11:49 ] @
Ne ljutim se,zahvalan sam vam na pomoc samo sto mi ovo neide sa promenom frekvencije.Probao sam nekoliko puta i nije htelo da proradi ali pokusavacu i dalje,ipak treba malo iskustva jer tezk sam pocetnik pa je sve tesko ali idemo dalje.
[ goran_68 @ 03.03.2012. 13:55 ] @
Jedan od nacina je pomocu PWM (laksi za tebe a i treba ti za kasnije). Na portu B pin RB3 mozes generisati PWM signal ciju ces frekvenciju menjati tasterima. E sad, datasheet u sake pa procitaj sve o socijalizmu :)
[ ZAS011 @ 03.03.2012. 15:47 ] @
Hardverski PWM ima u PBP (a i u Proton+) sledeca ogranicenja po pitanju minimalne frekvencije, zavisno od frekvencije kristala:

Code:
   4MHz        145Hz 
   8MHz        489Hz 
  10MHz        611Hz 
  12MHz        733Hz 
  16MHz        977Hz 
  20MHz       1221Hz 
  24MHz       1465Hz 
  33MHz       2015Hz 
  40MHz       2442Hz


I ovo pise u HELP-u