Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna mi je pomoc oko zadatka

[es] :: Elektronika :: Mikrokontroleri :: Potrebna mi je pomoc oko zadatka

Strane: 1 2 3

[ Pregleda: 12902 | Odgovora: 59 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-1.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 13:32 - pre 193 meseci
OVAJ KOD NIJE DOBAR I IMA PAR GREŠAKA A ISPRAVKA JE URAĐENA NAKNADNO PAR JAVLJANJA NIŽE


Ovako, prvo evo rešenje za ovog tvog kolegu Sašu koji je pokrenuo ovu temu.
Iako sam rekao da neću ipak sam rešio tvoj zadatak nisam ja kriv što sam meka srca !

Zadatak je glasio :

Realizovati sistem za uključenje i vremenski ograničen rad neke mašine. Mašina po ukljucenju radi 10 sec a zatim se isključuje. Pritiskom na taster stop ciklus se u svakom trenutku može prekinuti.

PORTB.0 Pogon mašine
PORTA.0 Start mašine
PORTA.1 Stop mašine

Rješenje ovog zadatka je :

Code:



    list p=16F84 
    #include <p16F84.inc> 

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


    cblock 0x0C    ; Definisanje bloka konstanti 

    BROJAC1        ; Brojač za prvu petlju
    BROJAC2        ; Brojač za drugu petlju
    BROJAC3        ; Brojač za treću petlju

    endc        ; Kraj bloka za definisanje konstanti



    bsf STATUS,RP0
    movlw b'00000011'
    movwf TRISA        ; Pinovi RA0 i RA1 ulazi za tastere a ostalo izlazni pinovi
    clrf TRISB       ; Svi pinovi PORTB izlazni
    bcf STATUS,RP0
 
    movlw 0x00       ; U momentu uključenja mikrokontrolera svi pinovi
    movwf PORTB       ; na PORTB su u stanju log. nule da se onemogući slučajno 
               ; uključenje mašine a pre pritiska tastera Start
    

Start   
    
    btfsc PORTA,0        ; Testira START taster, ako je pritisnut nastavlja se program 
    goto Start        ; ako nije onda ide na labelu Start za ponovno testiranje tastera START

    bsf PORTB,0       ; Nakon pritiska tastera START setuje se pin RB0 i uključuje mašinu 

    movwf .51       ; Ubacuje vrednost 51 u BROJAČ3 koliko
    movwf BROJAC3       ; je otprilike potrebno da bi se imala pauza od 10 sec.

Petlja    
    btfss PORTA,1       ; Da li je pritisnut taster STOP ?
    goto Stop       ; Jeste, idi na labelu Stop isključi mašinu pa onda idi na početak programa
    decfsz BROJAC1,0
    goto Petlja
    decfsz BROJAC2,0
    goto Petlja
    decfsz BROJAC3,0
    goto Petlja    

Stop    bcf PORTB,0        ; Posle pauze od 10 sec. mašina se sama isključuje osim ako prije toga nije
               ; pritisnut taster STOP u petlji što će izvršenje programa direktno usmeriti
               ; na ovu labelu Stop i zaustaviti njen rad tj. isključiti je !
    
    goto Start       ; Ide na početak i ponovo čeka tenutak kada će se pritisnuti taster za START
              

    end            ; kraj programa

    


Napomena za Sašu vezana za ovaj zadatak : za treću petlju je upisana vrednost 51 u BROJAČ3 dok ostali BROJAČI imaju podrazumijevanu vrijednost od 255 ( ako nije naglašeno posebno kao u tećoj petlji onda se podrazumeva 255 ).
Izvršavanje petlje je takvo da će samo izvršavanje najčećše prolaziti kroz prvu petlju pa je zato i testiranje tastera STOP stavljeno baš u prvoj petlji odnostno neposredno prije nje što će omogućiti uslov zadatka da mašina može da se isključi u svakom trenutku kako je i zahtevano u zadatku ali ... uvek postoji ali a ovde se odnosi na sledeće :
Petlja bi po mom računu trebala trajati cca 10 sec da u njoj nema testiranja prekidača STOP a pošto je to testiranje ubačeno onda će i sama petlja trajati malo duže od potrebnih 10 sec. Tebi ostaje da smanjiš malo onu vrednost za BROJAČ3 od 51 i prilagodiš je činjenici da pauza treba da bude 10 sec. Znači nema šta da mi zameriš što nisam ja to uradio a razlog je da neću da se mučim zbog tvog zadatka a i ti ćeš nešto naučiti usput. Ali čisto napomene radi mislim da bi ta vrednost trebala biti oko 49 ( ako se ne varam po mom brzom računu ali prekontroliši ) !

Stojane vidi ( ako imaš mogućnosti i vremena ) u tvom programu za izračunavanje pauza petlji koliko će trajati izvršenje ove petlje koju sam ja napisao , naravno bez testiranja tastera STOP čisto me zanima podatak . Nadam se da nema greške jer sam zadatak pisao na brzaka - neće studenti da plate !
Naravno kristal koji se koristi je podrazumevani od 4 MHz.

Toliko za ovaj zadatak !

Sada sa stefic_kg :

Ono što si napisao za tvoj zadatak nema smisla jer imaš reč gde piše PORTAB pa onda sve dalje gubi smisao. Lepo otiđi do asistenta i pitaj ga da ti precizira zadatak pa se javi. Nadam se da ću imati vremena i za tvoj zadatak ( moram ga naći jer si imam utisak dobar čovek ) !

Eto toliko , pozdrav !




[Ovu poruku je menjao Slavenko dana 16.06.2008. u 20:52 GMT+1]
 
Odgovor na temu

Struja01
Beograd

Član broj: 166347
Poruke: 190



Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 14:35 - pre 193 meseci
Gospodine Slavenko, vidi se da ste iz Lopara... )
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-3.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 17:24 - pre 193 meseci
Regodiću jel to zato što sam meka srca ili ???


Za stefic_kg

Sve mi nešto govori da je cilj tvog zadatka sledeći : Da se napravi svetlosni efekat trčećeg svetla tj. efekat širenja i skupljanja sa LED diodama ali da se koriste sledeći izlazi i da LED diode budu baš ovako i poredane na izlazima kao :

RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RA0 RA1 RA2

Znači ono što si napisao PORTAB je greška ( verovatno tvoja kada si zapisivao ) i trebalo bi da bude PORTB čime se podrazumeva da se kompletan PORTB koristi kao izlazni jel samo u ovoj gore napisanoj konfiguraciji centralna dioda bi bila ona koja je prikačena na RB5 a nju si pomenuo u zadatku da mora da bude uvek uključena. Nadam se da shvataš poentu , raspored koji sam napisao za izlaze direktno možeš da zamisliš kao LED diode i kada kreneš da ti je centralna dioda vezana na RB5 onda svaka sledeća levo i desno od nje ima svoj par ( npr. pali se istovremeno RB4 i RB6 pa onda ostaju uključene pa onda RB3 i RB7 ... i sve tako do krajnjih LED RB0 i RA2 ) tako da se dobija efekat kao da se svetlost kreće od RB5 i širi levo i desno od nje u istom ritmu i rasporedu da bi izgledalo kao da se postigne efekat razvlačenja i na kraju u drugom ciklusu kada se gase jedna po jedna ( u paru sa leve i desne strane ) da se dobije efekat skupljanja. Takt koji si napisao, odnosno koji ti je dat uslovima zadatka a to je 1 sec. trebao bi da bude ritam uključivanja i isključivanja LED dioda. Ovako izabrana tj. zadata frekvencija nije baš dobra za postizanje tog efekta i trebala bi da se to dešava cca 0.3 sec. po mom mišljenju ali uslov zadatka je ono što mora da se ispoštuje.

Kada proveris sa asistentom mislim da će ti potvrditi ovo što sam napisao !


 
Odgovor na temu

TRAJKO41
Msc Mechanical Engineer
Kragujevac

Član broj: 184547
Poruke: 32
93.86.26.*



+2 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 17:49 - pre 193 meseci
Molim Vas treba sto pre da uradim jedan zadatak u asembleru koji se realizuje pomocu mikrokontrolera PIC16F84 a nisam bas nesto radio do sada u asembleru. Molim vas ako neko zna neka pomaze. Sto pre. Hvala unapred.

Zadatak glasi:


Pritiskom na tastere pomerati upaljenu Led diodu na izlazu. U zavisnosti od toga koji se taster pritisne pali se prva leva ili prva desna Led dioda do diode koja je upaljena. Dioda koja je bila upaljena gasi se. Pomeranje prve Led diode (PORTB,0) udesno pali poslednju Led diodu (PORTB,7). Pomeranje poslednje Led diode (PORTB,7) udesno pali prvu Led diodu (PORTB,0).. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTB Prikaz
PORTA.0 Pomeranje ulevo
PORTA.1 Pomeranje udesno


ajde ljudi svima ste uradili samo meni niko nece da pomogne. molim vas treba mi hitno
Slavenko brate ajde pomozi i meni ako mozes
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.yu
Via: [es] mailing liste



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 17:54 - pre 193 meseci
Ne, ne. PicLoops program nije moj, vec William J. Bouchera sa http://www.mnsi.net/~boucher/emporium.htm . Zavrsio ga je negde oko 2001, a onda ga je izbrisao sa svog sajta, tako da se vise ne moze naci. Zato sam ga okacio kod sebe.

Nazalost Slavenko ne idu nesto ovi "na brzaka" napisani programi. Imate i Vi par gresaka.

1. U trenutku dovodjenja napona napajanja mikrokontroleru preko TRISB (i TRISA) su svi pinovi ulazni. Za razliku od njega PORTB (i PORTA) utrenutku ukljucenja sadrzi nedefinisanu vrednost.
E sada, ukoliko se u PORTB registru na mestu bita 0 nadje logicka 1, prilikom izvrsavanja programa jedno kratko vreme (2 mikrosekunde) bi pin davao logicku 1. Za relej to uopste nije bitno, ali jeste ukoliko su spolja povezana npr logicka kola 74xx ili 40xx serije. Resenje ovoga je podesavanje vrednosti u PORT registrima pre podesavanja TRIS registara. Buduci da postavljac teme nije precizirao eksterni hardver, trebala bi se i ova opcija uzeti u obzir.

2. movwf .51 instrukcija trebala bi biti movlw .51 . Inace ce se u registar opste namene na adresi 0x33 staviti (nedefinisana) vrednost W registra, a sledecom instrukcijom bi se ista nedefinisana vrednost W registra stavila u BROJAC1.

3. Rezultat decfsz BROJAC1,0 je isti kao decfsz BROJAC1,W, odnosno rezultat ce se naci u W a ne u F (registru BROJAC1), tako da ce se program neprekidno vrteti u prvoj petlji. Ista je situacija i sa registrima BROJAC2 i BROJAC3. Preporucujem Vam da koristite na ovaj nacin (sa W i F) imenovanja bitova, bas da bi eliminisali pojavu ovakvih brzih greskica.

4. Po narednoj pauzi vrednost unutar registara BROJAC2 i BROJAC3 nije inicijalizovana. To moze prouzrokovati krace trajanje pauze (par desetih delova sekundi) ukoliko je pauza prekinuta sa vrednostima .1 u BROJAC2 i BROJAC1 registrima.


Sto je brzo, to je i kuso. Posaljite lepo Slavenku par kredita, i imacete siguran i testiran program.


Sa PicLoops programom nije moguce testirati prekidac unutar petlje, ali je moguce testirati program simulatorom MPLAB-a, Pic Simulator IDE, Proteusom ili preko jos par programcica. Buduci da je jedino MPLAB potpouno besplatan, evo kakve rezultate daje:

Sa vrednoscu BROJAC3 = .51 pauza je oko 16.73 sekundi. Ispravna vrednost trebala bi biti .31 za 10.172727 sekundi. Buduci da postavljac teme nije naglasio potrebno odstupanje, ovo bi mozda bilo dovoljno. Dodatno poboljsanje preciznosti vremena postiglo bi se inicijalizacijom vrednosti BROJAC2 i BROJAC1 registara uz BROJAC3.
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.yu
Via: [es] mailing liste



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 18:09 - pre 193 meseci
Uops, sada videh da ste trazili trajanje petlje bez testiranja prekidaca. Tacna vrednost pauze bez testa prekidaca sa BROJAC1 = .255, BROJAC2 = .255, BROJAC3 = .51 i 4MHz je 10.052449 sekundi.
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-1.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 19:38 - pre 193 meseci
Ovu poruku sada već pišem drugi put jer mi jedna koju napisa nekako odjednom nestade a nisam video Big Laleta u blizini pa mi nije baš najjasnije šta se desilo ali nema veze otprilike sam napisao nešto ovako :

Bravo, Stojane ovo ja zovem konstruktivan dijalog i ovako treba da se radi !


Dalje : nemojte mi persirati !

Program sa greškama koje sam već napisao neka ostane kao primer brzog pisanja koda o čemu sam već pisao a ovde ću da uradim ispravku :

Evo sada i mojih komentara :

1. Pošto se motor uključuje preko sklopke nećemo razmatrati ovu tačku jer u ovom slučaju nije od značaja ! Inače iz mog iskustva izlazi su većinom u stanju log. 0. Mikročipovi mikrokontroleri ako mene pitaš su nešto kao ona stara Ruska tehnika stvarno treba da budeš "stručnjak" da ga uništiš. Ovo što ovi mikrokontroleri mogu da izdrže to nema ni u jednoj njihovoj prezentaciji. Primera radi umesto na 5 V ja sam ga par puta priključio na cca 16 V i gledam šta neće - jedini problem je bio što ništa nije radilo na tom naponu ? Kad sam skontao da sam izbegao stabilizator 7805 pomislio sam da je od njega ostalo samo kućište. Posle se ispostavilo da ništa nije uništeno ostao je potpuno ispravan !

2. movwf .51 je greška koja je inače tipična za mene jer mora da mislim brzo a kucam još brže pa nisam obraćao pažnju. Dakle treba da stoji movlw .51 čime se u W registar upisuje 51. Još jedna od tipičnih grešaka je kada napišem POTRA ili POTRB !

3. BROJAC,0 mi je greška koju do sada nikada nisam napravio ali za sve postoji prvi put ,

treba da stoji BROJAC,1 ili BROJAC,f čime se trenutna vrednost BROJAC upisuje u BROJAC za sledeći ciklus !

4. Ovo si dobro primetio a nećeš verovati i ja sam danas isto to primetio kod koda koji je napisan na početku ove teme pa bi u tom slučaju pauza za drugo uključenje motora bila oko 50.33 sec. naravno za slučaj da je program radio što opet nije bio slučaj. Kod koda, koji sam ja napisao ta pauza bi u drugom krugu uključenja mogla biti drastično manja od 10 sec. u zavisnoti od trenutka aktiviranja tastera STOP ! Ne mogu da verujem da sam naseo na ovu foru ali moram priznati šta da se radi hoće to u rešenjima tipa na brzaka. To je dokaz onoga što smo već pisali za pisanje programa na brzaka !



Što se tiče PicLoops-a nema potrebe da kometarišem jer znam da ga imaš a ja ga nemam jer računam po nekoj mojoj formuli za koju mi treba manje vremena nego za PicLoops ali sam samo hteo da proveriš koliko sam blizu bio !

A sada ponovo kod koji je ispravljen :


Code:


    list p=16F84 
    #include <p16F84.inc> 

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


    cblock 0x0C    ; Definisanje bloka konstanti 

    BROJAC1        ; Brojač za prvu petlju
    BROJAC2        ; Brojač za drugu petlju
    BROJAC3        ; Brojač za treću petlju

    endc        ; Kraj bloka za definisanje konstanti



    bsf STATUS,RP0
    movlw b'00000011'
    movwf TRISA        ; Pinovi RA0 i RA1 ulazi za tastere a ostalo izlazni pinovi
    clrf TRISB       ; Svi pinovi PORTB izlazni
    bcf STATUS,RP0
 
    movlw 0x00       ; U momentu uključenja mikrokontrolera svi pinovi
    movwf PORTB       ; na PORTB su u stanju log. nule da se onemogući slučajno 
               ; uključenje mašine a pre pritiska tastera Start
    

Start   
    
    btfsc PORTA,0        ; Testira START taster, ako je pritisnut nastavlja se program 
    goto Start        ; ako nije onda ide na labelu Start za ponovno testiranje tastera START

    bsf PORTB,0       ; Nakon pritiska tastera START setuje se pin RB0 i uključuje mašinu 
    movlw .255        ; Mora da se upiše ova vrednost u varijable BROJAC1 i 2 jer za slučaj da se desi pritisak tastera
    movwf BROJAC1  ; u trenutku kada se program nalazi u petlji biće zapamćene trenutne vrednosti za BROJAC1 i 2 pa 
    movwf BROJAC2  ; pauza u sledećem uključenju može biti drastično kraća od 10 sec.
    movlw .51       ; Ubacuje vrednost 51 u BROJAČ3 koliko
    movwf BROJAC3       ; je otprilike potrebno da bi se imala pauza od 10 sec.

Petlja    
    btfss PORTA,1       ; Da li je pritisnut taster STOP ?
    goto Stop       ; Jeste, idi na labelu Stop isključi mašinu pa onda idi na početak programa
    decfsz BROJAC1,f
    goto Petlja
    decfsz BROJAC2,f
    goto Petlja
    decfsz BROJAC3,f
    goto Petlja    

Stop    bcf PORTB,0        ; Posle pauze od 10 sec. mašina se sama isključuje osim ako prije toga nije
               ; pritisnut taster STOP u petlji što će izvršenje programa direktno usmeriti
               ; na ovu labelu Stop i zaustaviti njen rad tj. isključiti je !
    
    goto Start       ; Ide na početak i ponovo čeka tenutak kada će se pritisnuti taster za START
              

    end            ; kraj programa



Nadam se da više nema grešaka mada sam opet proverio sistemom na brzaka !




[Ovu poruku je menjao Slavenko dana 17.06.2008. u 00:45 GMT+1]
 
Odgovor na temu

sasha_kg
SasaLukic
student
Kragujevac

Član broj: 184565
Poruke: 11
*.vdial.verat.net.



Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 20:35 - pre 193 meseci
za Slavenka

Hvala na resenju zadatka
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-1.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka16.06.2008. u 20:58 - pre 193 meseci
REŠENJE OVOG ZADATKA NIJE TAČNO ! ISPRAVLJENO JE ISPOD A OVO OSTAJE DA SE VIDI SISTEM "NA BRZAKA"

OK Sale ! Nadam se da mi nisi zamerio možda sam bio malo grub pa mi posle bude krivo ali veruj mi ove stvari mora da znaš zbog sebe, nemoj da vam bude opravdanje profesor ili asistent !



za TRAJKO41 :

Zadatak koji si postavio je :

Pritiskom na tastere pomerati upaljenu Led diodu na izlazu. U zavisnosti od toga koji se taster pritisne pali se prva leva ili prva desna Led dioda do diode koja je upaljena. Dioda koja je bila upaljena gasi se. Pomeranje prve Led diode (PORTB,0) udesno pali poslednju Led diodu (PORTB,7). Pomeranje poslednje Led diode (PORTB,7) udesno pali prvu Led diodu (PORTB,0).. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTB Prikaz
PORTA.0 Pomeranje ulevo
PORTA.1 Pomeranje udesno

Rešenje :

Prvo treba da ti kažem da ti asistent nije rekao koja LED dioda treba da bude uključena na početku da bi imalo smisla da se vrši pomeranje jer ako ni jedna nije, onda nema ni pomeranja. Pošto to nije eksplicitno rečeno onda sam ja izabrao da to bude LED koja je priključena na RB3 i koja se odmah po uključenju programa, pardon mikrokontrolera na napajanje uključuje da bi pomeranje moglo biti realizovano preko tastera koji su navedeni.
Nemoj da mi zameriš ako postoji neka greška verujem da će neko da se javi ako je primeti jer sam lepo rekao da nemam vremena ni za kakve provere a i ovako me boli glava od vaših zadataka iako su laki jer stvarno imam previše mojih obaveza koje danas nisam stigao završiti pa ću morati ostati noćas do kasno. Shvatićeš ovo jednog dana kada budeš odlučio da pišeš programe za mikrokontrolere. Samo još da naglasim da je u praksi testiranje tastera daleko složenije od ovih koje sam uradio tebi i itvojim kolegama u zadacima zato što se mora uzeti u obzir da taster pravi puno trzaja i pri uključenju kao i pri isključenju pa postoje neke programse rutine kojima se to eliminiše u zavisnosti od kvalitata upotrebljenog tastera. Pretpostavljam da u zadacima koje ste vi dobili one nisu neophodne jer se traži od vas da vide vaš način rešavanja konkretnih zadataka inače bi samo deo koda koji vrši testiranje tastera zbog nesavršenosti njegovih kontakata bilo duže nego svaki od ovih programa pojedinačno ako bi se pravilno napisao.

Rešenje za tvoj zadatak je :

Code:


        list p=16F84A 
    #include <p16F84A.inc> 
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


    LED equ 0x0C     ; Definisanje promenjive u kojoj se čuva podatak koja LED je uključena


    bsf STATUS,RP0
    movlw .3         ; Pinovi RA0 i RA1 su definisani kao ulazi a
    movwf TRISA     ; a ostali su konfigurisani kao izlazni
    clrf TRISB     ; Svi pinovi PORTB su konfigurisani kao izlazni
    bcf STATUS,RP0

    movlw b'00001000' ; Jedna dioda mora da bude uključena na početku programa da bi se 
                ; vršilo pomeranje ja sam izabrao da to bude LED koja je priključena na RB3
    movwf LED      ; Dakle po uključenju programa dija LED na pinu RB3

Početak
    btfss PORTA,0      ; Da li je uključen taster za pomeranje u LEVO ?
    goto Levo      ; Jeste, skoči na Labelu za pomeranje u levo !
    btfsc PORTA,1      ; Nije, a da li je uključen taster za pomeranje u DESNO ?
    goto Početak      ; Nije, idi ponovno na testiranje dok nešto ne bude stisnuto od ova dva tastera !
    
    rrf LED,f      ; Uključen RA1 i pomera se trenutni sadržaj LED varijable u desno pamti novo stanje pa se 
    movf LED,W      ; prebacuje sadržaj LED u W registar
    movwf PORTB      ; sada se sadržaj W prebacuje na PORTB kada se praktično vrši pomeranje u desno
    goto Početak      ; Posle pomeranja idi na početak da vidiš koji taster će sada biti aktiviran !

Levo 
    rlf LED,f      ; Pomera sadržaj varijable LED u levo za jedno mesto pamteći novo
    movf LED,W      ; prebacuje sadržaj LED u W registar
    movwf PORTB      ; prikazuje W sadržaj na PORTB i vrši pomeranje u levo gaseći prethodnu LED
    goto Početak      ; Vraća se na početak programa za novo testiranje tastera !
    

    end


Nadam se da nema grešaka , ako ima javite !

PS: Samo da još jednom naglasim : ovaj zadatak ne bi radio u praksi kao što sam i rekao zbog rutine koja je potrebna za testiranje tastera ali kao zadatak koji treba rešiti da bi se videlo u kom pravcu student razmišlja je dobar ! To znači da praktična primena ovog zadatka ne bi dala očekivane rezultate osim u slučaju korišćenja idealnog tastera ( koji ne postoji osim u teoriji ) !



[Ovu poruku je menjao Slavenko dana 17.06.2008. u 01:20 GMT+1]

[Ovu poruku je menjao Slavenko dana 17.06.2008. u 14:58 GMT+1]
 
Odgovor na temu

TRAJKO41
Msc Mechanical Engineer
Kragujevac

Član broj: 184547
Poruke: 32
147.91.202.*



+2 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 08:51 - pre 193 meseci
Za Slavenka.

Hvala puno, probacu pa cu da javim kako radi.Pozz
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-1.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 10:33 - pre 193 meseci
Trajko taj program neće raditi kako treba vać sam ti naglasio jer nema rutine za testiranje tastera. Informacije radi pošto se ovim stvarima očigledno niste bavili stvari stoje ovako :

Na samo jedan pritisak tastera on će proizvesti toliko prekida da ti nećeš moći ni videti koliko pomeranja je bilo za samo jedan pritisak. Primera radi iz moje prakse : na jedan pritisak i otpuštanje tastera on generiše najmanje (barem ) 4-5 impulsa ako je kvalitetniji ( a zavisi i kako si ga pritisnuo ) pa sve do par stotina impulsa. Ovo ti pričam zato što sam jednom namerno izbacio rutinu za testiranje tastera kod brojača koga sam pravio i blago rešeno ostao začuđen rezultatima.
Znači i prilikom pritiskanja tastera on generiše više impulsa a takođe radi to i prilikom otpuštanja. Koliko god ti bio brz u stiskanju i puštanju on će raditi kako radi jer nema savršene kontakte.


PS: Nemoj da se razočaraš , to ti je praksa a školski zadatak ima za cilj nešto drugo, da se vidi koliko si shvatio priču koja je pričana na predavanjima ! Rezultat ovog rešenja možeš da vidiš jedino u simulatoru !
 
Odgovor na temu

arsoKG
arso vukicevic
djak
KG

Član broj: 185078
Poruke: 2
147.91.203.*



Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 10:59 - pre 193 meseci
moze li neko pomoci u vezi ovoga? treba u okviru vremena za kasnjenje definisati brojach/kao for petlja u c++??//

thnx anyway.

zadatak:

Realizovati oscilator učestanosti 10 Hz kog koga se odnos signal-pauza moze da menja. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.

PORTA.0 Izlaz oscilatora
PORTA,1 Invertovani izlaz oscilatora
PORTB.0 Povećanje trajanja impulsa
PORTB.1 Smanjenje trajanja impulsa

--------------------

kasnjenje ;kašnjenje za
;pola sekunde
movlw B'00000011'
movwf brojac1
movlw B'11111111'
movwf brojac2
movlw B'11111111'
movwf brojac3
start1
decfsz brojac1
goto start2
goto kraj
start2
decfsz brojac2
goto start3
goto start1
start3
decfsz brojac3
goto start3
goto start2

kraj ;ovde je kraj
;brojenja
--------------------------------------------------
osnova za program
; primer 1
; Pritiskom na ulaz 0 porta pale se led diode 0,2,4,6 a gase 1,3,5,7 portb
; Pritiskom na ulaz 1 porta pale se led diode 1,3,5,7 a gase 0,2,4,6 portb

#include p16f84A.inc ; inicijalizaija procesora koji ce se koristiti
processor 16f84A
org 5 ; program pocinje od pozicije 5 u memoriji
; inicijalizacija
clrf PORTA ;
clrf PORTB ;
bsf STATUS,RP0 ; prebaciti se u banku 1 memorije
movlw 0x1f ; definisanje da je porta ulazni
movwf TRISA ; nazivi registara pisu se velikim slovom
movlw B'00000000' ; definisanje da je portb izlazni
movwf TRISB ; vratiti se iz banke 1 memorije
bcf STATUS,RP0

start ; labela za pocetak ispitivanja
;
movlw B'01010101' ; pale se led diode 0,2,4,6 a gase 1,3,5,7 portb
movwf PORTB ; u port b upisi 0x55
btfsc PORTA,0 ; ispitaj da li je pritisnut taster porta.0
goto akcija1 ; ako jeste skoci na akcija 1 ako nije preskoci na sledece ispitivanje
btfsc PORTA,1 ; ispitaj da li je pritisnut taster porta.1
goto akcija2 ; ako jeste skoci na akcija 2 ako nije vrati se na pocetak ispitivanja
; pale se led diode 0,2,4,6 a gase 1,3,5,7 portb
movlw B'01010101' ; u port b upisi 0x55
movwf PORTB ;
goto start ;vrati se na pocetak ispitivanja





akcija1 ; pale se led diode 0,2,4,6 a gase 1,3,5,7 portb
movlw B'01010101' ; u port b upisi 0x55
movwf PORTB ;
goto start ; vrati se na pocetak ispitivanja



akcija2 ; pale se led diode 1,3,5,7 a gase 0,2,4,6 portb
movlw 0xAA ; u port b upisi B'10101010'
movwf PORTB ;
goto start ; vrati se na pocetak ispitivanja

__config B'11111111110001' ; nema zastite koda, powerup dozvoljeno,
; wd iskljucen, xt oscilator

end ; kraj programa




pauza ; potprogram za pravljenje kasnjenja
movlw 0xff
movwf delay
petlja
decfsz delay,1 ; kasnjenje je oko delay * 2 mikrosekundi
goto petlja ; za oscilator od 4MHz
return
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.yu
Via: [es] mailing liste



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 12:00 - pre 193 meseci
Ne ide. Nikako da prorade ovi "brzinski" programi. Ipak ima previse sitnica na koje se treba obratiti paznja. Ni ovaj za Trajka nece raditi kako bi trebalo.

1. Na pocetku (pre labele Pocetak) je inicijalizovan samo LED registar, a ne i PORTB. Zato ce se na njemu odmah po ukljucenju javiti nedefinisano stanje, koje ce trajati sve do pritiska jednog od tastera.

2. Pre svake rotacije morao bi se obrisati Carry flag, kako ne bi dosao na mesto MSB ili LSB bita LED registra.

3. Nakon rotacije koja se obavlja nad LED registrom, mora se sadrzaj iz LED registra prebaciti u W, a onda iz njega u PORTB. Ovako se u PORTB postavlja jedan te isti (inicijalni b'00001000') sadrzaj.

4. Kada ukljucena LED dodje do mesta MSB ili LSB bita LED registra, pre rotacije se mora detektovati ovo stanje, kako se u LED registru ne bi naslo stanje b'00000000', a 'ukljuceni' bit presao u Carry flag.

Pored toga, zadatak i dalje nije dovoljno precizno postavljen zbog nepostojanja eksternog hardvera. Da li su na pinove RA0 i RA1 povezani pull-up ili pull-down otpornici (Slavenko je u zadatku pretpostavio da su u pitanju cesce korisceni pull-up) ili su pak pinovi povezani jedino za prekidace u kom slucaju program jednostavno nece raditi pouzdano, bez obzira sta vam tvrdila profesorka ili asistent. Pored toga u zadatku nije (sto je Slavenko lepo primetio) postavljena pocetna vrednost ukljucene LED. Eto kako se lako iz postavki ovakvih zadataka utvrditi strucnost predavaca.
U ovom slucaju, u zadatku bi pored softvera trebalo definisati i eksterni hardver upravo zbog prekidaca. A ukoliko se ne zeli testirati i 'trzanje prekidaca' (strucni izraz debouncing) potrebno je na RA0 i RA1 pinove dodati hardverski debouncing preko npr. dva otpornika i jednog kondenzatora. Mozda bi hardverski debouncing bio suvisan pri niskom taktu oscilatora (naravno, ni on nije definisan) od oko 2-3Hz. Vise o hardverskom debouncingu imate u odlicnim lekcijama za PIC seriju sa www.gooligum.com.au , tacnije u www.gooligum.com.au/tutorials/PIC_Intro_4.pdf .

Dve vezbe za PIC16F84 je stvarno malo. U tom slucaju ne bi ni trebali dobijati ovakve zadatke. Izgleda da vam fakultet pati i od slabe organizacije (bar iz arhitekture racunarskih sistema). Nazalost, nije jedini. Braca mi sutra polazu prijemni ispit za srednju skolu. Verovali ili ne, ne uspevam resiti preko 70% zadataka iz srpskog jezika.

A sada dosta vise pomoci gotovim zadacima. Potrudite se malo i sami. Probajte prilagoditi Slavenkov program prema gornjim preporukama, i postujte ga ovde kada nesto zaskripi. Pretpostavljam da ste vec skinuli MPLAB sa www.microchip.com i da ste uspeli podesiti program za PIC16F84 i da ste dosli do njegovog editora.
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-3.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 13:53 - pre 193 meseci
Ponovo se potvrđuje da brzina ne rešava problem. Dakle, Stojene u pravu si ali nisam siguran u svemu buni me jedan deo !
Pošto sam se sam uvukao u ovo mora sam i da ispravim greške a opet neću da ispravljam kod na mestu gde je napisan nego ovde iako ni sam ne znam kako da stignem završiti za mene posao koji još od juče nisam stigao a sinoć do kasno sam ostao raditi .

Evo na brzaka mojih komentara na Stojanove po tačkama kako je pisao :

1. Totalno u pravu , nisam upisao podatak na PORTB još sam kao kontrolisao par puta sinoć !

2. Može biti nemam vremena za razmišljanje !
3. Nisam te shvatio šta si ovde hteo reći jer se sadržaj prebacuje u W i iz njega na PORTB. Tu sam grešku sinoć primetio pa sam je ispravio ali danas je nema , tako da mi nisi jasan u ovom pogledu. Nemoj mi zameriti jer stvarno ne mogu previše razmišljati sada, bukvalno razmišljam paralelno kako da završim posao koji sam drugima obećao tako da sam ovde trenutno samo delimično.

4. Ovde si apsolutno u pravu !


Što se tiče izbegavanja varničenja kontakata tastera neće mu pomoći vezivanje kondenzatora ni na kojoj frekvenciji , taj pristup je uvek nepouzdan. Jedino softversko rešenje pomaže a sa njim može da se doda i kondenzator u rešenjima kojima je to neophodno.

Poenta : Nikada na brzaka još jednom se potvrdila. Možda ja nebi ni napravio grešku u programu pod uslovom da samo mislim o njemu ali praktično sam u ovome pristutan jako malo uslovljen mojim problemima koje mora da rešavam. Asistent je napravio dobru zvrčku sa uslovom a to si Stojane dobro primetio ! Informacije radi sada je 14 i 50 a ja još nisam doručkovao a glupiram se ovde :( .


I na kraju, za danas imam toliko vremena da pročitam eventualno novi komentar a tek sutra mogu da ga komentarišem pa nemojte zameriti !


Sledi ispravljen kod :

Code:


list p=16F84A 
    #include <p16F84A.inc> 
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


    LED equ 0x0C     ; Definisanje promenjive u kojoj se čuva podatak koja LED je uključena


    bsf STATUS,RP0
    movlw .3         ; Pinovi RA0 i RA1 su definisani kao ulazi a
    movwf TRISA     ; a ostali su konfigurisani kao izlazni
    clrf TRISB     ; Svi pinovi PORTB su konfigurisani kao izlazni
    bcf STATUS,RP0

    movlw b'00001000' ; Jedna dioda mora da bude uključena na početku programa da bi se 
                ; vršilo pomeranje ja sam izabrao da to bude LED koja je priključena na RB3
    movwf LED      ; Dakle po uključenju programa dija LED na pinu RB3
    movf LED,W      ; Prebacuje sadržaj LED u W
    movwf PORTB      ; Tek sada se pali LED na RB3
                   

Početak
    btfss PORTA,0      ; Da li je uključen taster za pomeranje u LEVO ?
    goto Levo      ; Jeste, skoči na Labelu za pomeranje u levo !
    btfsc PORTA,1      ; Nije, a da li je uključen taster za pomeranje u DESNO ?
    goto Početak      ; Nije, idi ponovno na testiranje dok nešto ne bude stisnuto od ova dva tastera !
    
    
    rrf LED,f      ; Uključen RA1 i pomera se trenutni sadržaj LED varijable u desno pamti novo stanje pa se 
    btfsc STATUS,0
    goto Desni_prenos
    movf LED,W      ; prebacuje sadržaj LED u W registar
    movwf PORTB      ; sada se sadržaj W prebacuje na PORTB kada se praktično vrši pomeranje u desno
    goto Početak      ; Posle pomeranja idi na početak da vidiš koji taster će sada biti aktiviran !

Levo 
    
    rlf LED,f      ; Pomera sadržaj varijable LED u levo za jedno mesto pri tome gaseći prethodno stanje pamteći novo
    btfsc STATUS,0
    goto Levi_prenos
    movf LED,W      ; prebacuje sadržaj LED u W registar
    movwf PORTB      ; prikazuje W sadržaj na PORTB i vrši pomeranje u levo gaseći prethodnu LED
    goto Početak      ; Vraća se na početak programa za novo testiranje tastera !

Levi_prenos

    movlw .1
    movwf LED
    movf LED,W
    movwf PORTB
    bcf STATUS,0    
    goto Početak

Desni_prenos

    movlw .128
    movwf LED
    movf LED,W
    movwf PORTB
    bcf STATUS,0
        goto Početak

    end



PS: Stojane ako imaš vremena prekontroliši ovaj kod , nadam se da je sada OK !
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.yu
Via: [es] mailing liste



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 16:13 - pre 193 meseci
Za tacku 3. greska je moja. Na dial-upu sam i poruke primam preko mailing liste, tako da nisam ni mogao primetiti sinocnu ispravku programa.

Tacka 2 resena je u ovom programu bcf STATUS,0 instrukcijama. Ja obicno stavljam bcf STATUS,C neposredno pre instrukcija rotacije, ali ne smetaju ni ovde.

Ipak, i u ovom i u proslom programu potkrala se jedna mala greskica, a ona se tice (necete verovati) tipa mikrokontrolera. PIC16F84 se prestao proizvoditi (sto profesorka sigurno ne zna), a PIC16F84A mu je ekvivalentna zamena. Ipak, buduci da bi profesorka mogla zbog toga reci da program ne valja (verujte mi na rec, imao sam slucajeve gde sam na ocigledno nebulozna pitanja samo klimao glavom, iz straha da ne budem oboren) Trajko bi trebao ovo ispraviti.

Slavenku se pak ovakva greskica sigurno potkrala usled profesionalne deformacije. On je potpuno svestan da je danas veoma tesko naci PIC16F84.


Slavenko, preporucio bih Vam da grrr. Preporucio bih ti da i oznake bitova pises u binarnom formatu. Meni je bar daleko razumljivje citati movlw b'00000011' pa movwf TRISA umesto movlw .3 pa movwf TRISA. Isto vazi i za prekoracenja (b'00000001' umesto .1 i b'10000000' umesto .128) i za STATUS,C umesto STATUS,0. Za ovako jednostavne programe to i nije od nekog znacaja, ali sigurno si i sam bio u situaciji da vise vremena utrosis na debagovanje programa nego na njegovo ponovno pisanje iz pocetka.

Ipak, hardverski debouncing radi, iako se u praksi skoro UOPSTE ne primenjuje. Zbog cega? Pa jeftinije je i pouzdanije realizovati ga softverski, a u nekim slucajevima (multipleks matrice tastera) nije ni moguc.

Nizak takt oscilatora nisam naveo kao hardverski debouncing, vec kao teoretsku mogucnost softverskog debouncinga (za slucaj da je tako mali takt dovoljan za ista - obicno nije). Sudeci po testovima sa http://www.ganssle.com/debouncing.pdf tesko da bi tasteri 'titrali' i nakon oko 200mS, a prst bi za to vreme sigurno i dalje pritiskao taster. U istim testovima navedeno je i par primera hardverskih debouncinga, ali princip sa slike 2 (Figure 2: An RC debouncer) je po principu potpuno isti kao sa www.gooligum.com.au/tutorials/PIC_Intro_4.pdf zbog visoke impedanse ulaznih pinova mikrokontrolera. Ovo je ipak pitanje za neku drugu temu.


Da rezimiram. U programu promenite
Code:
   list p16F84A
   #include <p16F84A.inc>

u
Code:
   list p16F84
   #include <p16F84.inc>

i program ce raditi bez greske (ako uspete nabaviti PIC16F84).

Za slucaj da Vas profesorka pita, napomenite da su na elektricnoj semi postavljeni pull-up otpornici, tako da kada su tasteri pritisnuti salju na pinove logicku 0. Ukoliko Vas pita zasto pull up a ne pull down, izmislite bilo sta (elektrostaticke smetnje, bolja stabilnost prilikom losih izvora napajanja, sunceve pege, bioenergija, mali zeleni...). Ionako ni sama ne zna odgovor. A ukoliko bas insistira, napomenite joj da SVI danasnji mokrokontroleri koriste upravo integrisane pull-up otpornike (naravno, zbog gore navedenih razloga).

Ukoliko zelite da impresionirate profesorku, pitajte je da li mozete umesto PIC16F84 koristiti PIC16F84A jer ovaj prvi ne mozete nabaviti, i zatrazite joj da vam objasni razliku izmedju njih.

[Ovu poruku je menjao Stojan Trifunovic dana 17.06.2008. u 21:23 GMT+1]
 
Odgovor na temu

Slavenko
Niš

Član broj: 75943
Poruke: 158
*.adsl-a-1.sezampro.yu.



+6 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 20:41 - pre 193 meseci
Kao neću se javljati danas ali nisam mogao izdržati pa evo javljam se !

Hehe Stojane, znam da nema više 84-ke bez A, i ja kada sam radio ove programe obično kopiram prve tri linije jer su manje više standardne za sve programe tako da je bilo 84A ali sam izbrisao A zato što se tražilo eksplicitno rad na 84.
E sada nećeš verovati u prethodnom programu postoje višak dve naredbe , izgleda da to nisi primetio a malo si me i prevario na brzaka za to. Program će raditi normalno , probao sam ga na simulatoru naravno ograđujući se od treperenja kontakta tastera.

Za ovaj primer naravno mogu se iskoristiti kondenzatori paralelisani na ulazu da bi smanjili efekat titranja kontakata čisto da bi videli efekat koji je napravljen programom. Ako i protrči neki put više nego što je trebalo nije od važnosti za ovakav tip zadatka, na kraju krajeva radi se o LED diodama e ne mašini koja bi eventualno mogla biti uključena u trenutku kada joj nije vreme.

U svakom slučaju, lepo smo krenuli a mogli bi i da nastavimo meni se sviđa ! Ima još zadataka koliko sam primetio pa ćemo videti u narednim danima kako će biti sa slobodnim vremenom što se mene tiče. Za studente koji su dobili ove zadatke opet napominjem da nisu teški i samo ih treba dobro sagledati, naravno ne na brzaka jer se onda potkradaju greške što ste mogli i primetiti kod mene.
Kao što ste primetili niko se nije ljutio na komentare da nešto ne radi nego su preduzete mere da se to popravi da bi radilo a tako treba da se radi ako mene pitate. Voleo bih da pošto imamo još nerešenih zadataka neko pokuša da ih reši a da se ostali malo aktivnije uključe u komentare i predloge. Što se mene tiče čim malo dobijem vremena idemo dalje sa rešavanjem.

Toliko od mene ovaj put a sada idem da nastavim sa poslom koji sam započeo !
Pozdrav !
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.smin-1.sezampro.yu.



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 20:55 - pre 193 meseci
Arso, mozete li malo detaljnije opisati zadatak? Ima nas ovde koji ne razumeju C++.

Na koji način bi trebalo da se menja učestanost?
1. Promenom dužine samo signala,
2. Promenom dužine samo pauze,
3. Promenom oba parametra,
4. U kojim granicama (koja je donja i gornja granična frekvencija npr. 5Hz i 15Hz ili 3Hz i 30Hz),
5. Sa kojom rezolucijom (npr. 1Hz ili 0,5Hz),
6. Kolika su dozvoljena odstupanja od tačne frekvencije (npr. +-0,1Hz ili +- 0,01Hz).


Par saveta za kragujevačke studente:

Ukoliko je moguće za zadatke izaberete da prekidači budu na portu B, a ne na portu A. Razlog su integrisani pull up otpornici unutar PIC16F84 mikrokontrolera koji eto postoje samo na portu B. To je već klasika.

Postavite program unutar code /code tagova sa leve strane. Tako će biti pravilno formatiran.

Arsa je za sada jedini student koji je eto bar probao sam da napravi program. Ugledajte se na njega.
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.smin-1.sezampro.yu.



+8 Profil

icon Re: Potrebna mi je pomoc oko zadatka17.06.2008. u 22:07 - pre 193 meseci
Eto. Džabe sam pohvalio Arsu!

Njegov rad je očigledno kopiran program nekog drugog studenta, a koji je trebao da radi sledeće:

; Pritiskom na ulaz 0 porta pale se led diode 0,2,4,6 a gase 1,3,5,7 portb
; Pritiskom na ulaz 1 porta pale se led diode 1,3,5,7 a gase 0,2,4,6 portb

Arsin zadatak je klasičan PWM a ne promena frekvencije kako sam pogrešno zaključio u prošlom mailu, ali ovakvo prikazivanje "sopstvenog" rada stvarno vise nema smisla.

Što je najgore, i taj prepisan program je najblaže rečeno očajan.
 
Odgovor na temu

stefic_kg
Kragujevac

Član broj: 119791
Poruke: 71
77.46.252.*



+2 Profil

icon Re: Potrebna mi je pomoc oko zadatka18.06.2008. u 09:32 - pre 193 meseci
Evo mene opet! :-)

U vezi zadatka koji nije bio jasno definisan, a ciji tekst je glasio ovako:

Realizovati svetlosni efekat tako da se led diode PORTAB, PORTA,0 i PORTA,1, PORTA,2 se pale po jedna sa leve i desne strane počev od PORTB,5 (koja se pali sama) redom svake sekunde. Kada se sve upale prvo se gase poslednje upaljene led diode Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.

Nakon konsultacije sa asistentom, zadatak treba da izgleda ovako:

A4 A3 \ A2 A1 A0 B7 B6 B5 B4 B3 B2 B1 B0

Znaci, led diode se pale svake sekunde na levo i na desno od B5 istovremeno po jedna dok ne dodje do kraja (tj, do B0 i A2).
Onda se insto ovako ali u suprotnom smeru gase led diode. ( od B0 i A2 ka B5).
Svo vreme, B5 treperi.

Za Slavenka: Bio si u pravu.

Nije nam toliko bitno trenutno da li je u potpunosti tacan zadatak, treba nam neka osnova, a za greske videcemo sa asistentom, pa ako ne budemo mogli da resimo,
javicemo se mozda ponovo da nam nesto objasnite ako bude trebalo.

Kad budes imao vremena pogledaj zadatak pa javi.

Pozz

[Ovu poruku je menjao stefic_kg dana 18.06.2008. u 15:54 GMT+1]
 
Odgovor na temu

arsoKG
arso vukicevic
djak
KG

Član broj: 185078
Poruke: 2
*.com
Via: [es] mailing liste



Profil

icon Re: Potrebna mi je pomoc oko zadatka18.06.2008. u 10:19 - pre 193 meseci
:)))/ braco:P mi smo na faksu radili 2 glupa primera i objasnio nam je 5,6 naredbi a trazi da odradimo ovo + nemamo vremena zbog ostalih obaveza. Predmet se ne zove mikrokontroler nego se radi u okviru dr.predmeta>pre je to mozda bilo 2semestra sada je sve zajedno.

jednostavno ne znamo sintaksu asemblera i to je to. imamo 100 zadataka od prethodnih generacija//nesto treba izmeniti i radice>>/zato sam ono poslao,valjda bi vam bilo lakse da samo onde nesto izmenite nego da sve pisete ponovo???


//da objasnim sto nije jasno

ovo za led 1 3 5 7 >samo treba upisati b='1111111' i posle 10 Hz b='000000'
i sve tako naizmenicno //znaci nema veze sa portovima A B// to je kao nulta operacija

treba da se definise 'vreme kasnjenja' od koliko...5ms=10Hz? kao FOR petlja u c++
// ali u okviru toga dela za kasnjenje ce biti neki brojac koji ce se povecavati i smanjivati preko porta A i B.

portovi a b sluze za menjanje bas te frekvencije(brojaca) od 10Hz >pritisnes A >frekvencija paljenja se povecava za recimo +10Hz>pritisnes A> +10 ,pritisnes B smanji se za -10Hz//..etc.

kao program

while(1)//beskonacna petlja
{
b='oooooooo'
FOR(i=0; i<=n;i++)
{

prodje vreme od 10Hz....;

//vreme 10Hz se menja preko brojaca n! odnosno onih ulaza A B
sto je n vece vece je vreme i obrnuto
//

b='1111111' - komplementirati izlaz!

}
}

kukvalno ovo treba napisati u asembleru
>a ti preko A i B menjas vrednost n>//koje je u pocektu bilo takvo da proizvodi frekvenciju 10Hz//

kontate li sada? bzvz prozivate ljude,ni meni nije jasno da znate asembler a ne znate c++ //zato mi nekome mozemo odraditi c++ neko nama ovaj shit i svi zadovoljni//zato i sluzi forum.

aj pozz//











--0-1188563178-1213780736=:3229
Content-Type: text/html; charset=iso-8859-2
Content-Transfer-Encoding: quoted-printable

--- On Tue, 6/17/08, Stojan Trifunovic &lt;[email protected]&gt; wrote:From: Stojan Trifunovic &lt;[email protected]&gt;Subject: Re: Potrebna mi je pomoc oko zadatka [elitesecurity.pracenje.teme]To: [email protected]: Tuesday, June 17, 2008, 9:55 PMArso, mozete li malo detaljnije opisati zadatak? Ima nas ovde koji ne razumejuC++.Na koji na�in bi trebalo da se menja u�estanost? 1. Promenom du�ine samo signala,2. Promenom du�ine samo pauze,3. Promenom oba parametra,4. U kojim granicama (koja je donja i gornja grani�na frekvencija npr. 5Hz i15Hz ili 3Hz i 30Hz),5. Sa kojom rezolucijom (npr. 1Hz ili 0,5Hz),6. Kolika su dozvoljena odstupanja od ta�ne frekvencije
(npr. +-0,1Hz ili +-0,01Hz).Par saveta za kragujeva�ke studente:Ukoliko je mogu�e za zadatke izaberete da prekida�i budu na portu B, a ne naportu A. Razlog su integrisani pull up otpornici unutar PIC16F84mikrokontrolera koji eto postoje samo na portu B. To je ve� klasika.Postavite program unutar code /code tagova sa leve strane. Tako �e bitipravilno formatiran.Arsa je za sada jedini student koji je eto bar probao sam da napravi program.Ugledajte se na njega.--http://www.elitesecurity.org/p1978529Prijave/odjave: http://www.elitesecurity.org/pracenje#326390Ne menjajte sledece dve linije ukoliko odgovarate putem emaila!esauth:326390:3ec203834c6f24070762b4193997e7eb
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Potrebna mi je pomoc oko zadatka

Strane: 1 2 3

[ Pregleda: 12902 | Odgovora: 59 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.