www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Začetek z AVR
Pojdi na stran Prejšnja  1, 2, 3 ... 11, 12, 13
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Laney
Član
Član



Pridružen-a: Čet 09 Sep 2010 22:11
Prispevkov: 26
Aktiv.: 0.14
Kraj: Nova Gorica

PrispevekObjavljeno: Čet Mar 17, 2011 7:19 pm    Naslov sporočila:   Odgovori s citatom

Kako se v asemblerju vpiše poljubno cifro v PC pri atmega 16 ?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 604
Aktiv.: 3.42

PrispevekObjavljeno: Čet Mar 17, 2011 8:19 pm    Naslov sporočila:   Odgovori s citatom

Hu težka.
Vpiseš v register Z in potem z enim od ukazov za skok preneseš v PC in tudi skočiš.
Upam, da bo @silvo kaj povedal.

Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Mar 17, 2011 11:35 pm    Naslov sporočila:   Odgovori s citatom

blay44 je napisal/a:
Hu težka.
Vpiseš v register Z in potem z enim od ukazov za skok preneseš v PC in tudi skočiš.
Upam, da bo @silvo kaj povedal.

Lp


He, he je kdo pomislil kaj naredijo instrukcije rjmp, jmp, rcall, call Wink

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 604
Aktiv.: 3.42

PrispevekObjavljeno: Sob Mar 19, 2011 2:56 pm    Naslov sporočila:   Odgovori s citatom

Very Happy Sem @Silvo.
Domnevam pa, da bi rad naredil nekaj takega kot je v basicu stavek goto-labela in on bi to predelal v goto "spremenljivka". Skok glede na rezultat spremenjivke, kot recimo stavek case v basicu.
Pa bi moral asmju povedat kam naj doskočni program prevede. Če bi hotel minimalno zanesljivost programa, da se mu ne bi vsake toliko časa sesul še filtrirati vrednosti spremenjivke...
Lažji način je uporaba CPSE v kombinaciji z skokom.

@Silvo očeta sem nagovoril(pa tudi sam je bil zato), da zrihta tvoj @ebay-china programator za gale. V kombinaciji z avrjem bo stvar žažigala. Upam, da se bo tema o galih nadaljevala, da si izmenjamo izkušnje ali še bolje, da se kaj naučim.
Sem ga probal usmeriti v Fpgaje, pa se ni dal. Laughing

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Mar 19, 2011 4:10 pm    Naslov sporočila:   Odgovori s citatom

Programski števec (PC) diktira tok programa. Starta z 0 (reset vektor) ob normalnem toku programa se ob vsakem clock-u poveča za ena. (razen takrat, ko se izvede prekinitev. Pri pic-u se takrat postavi na lokacijo 0x4 ter program nadaljuje od tam naprej. Trenutna vrednost pa se shrane v sklad ter se vrne, ko naleti na instrukcijo retfie. Pri avr-ju se ob prekinitvi postavi na lokacijo, ki je ustrezna za dotično prekinitev. Trenutna vrednost PC se tudi shrane v sklad. Ko naleti na instrukcijo reti se ta vrednost pobere iz sklada. (za vse to skrbi sam hardware) Za programsko spremembo toka probrama skrbi instrukcija jmp kateri sledi vrednost. Vrednost običajno označimo z neko labelo v programu. Prevajalnik potem labelo zamenja z ustrezno vrednostjo programskega števca.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Laney
Član
Član



Pridružen-a: Čet 09 Sep 2010 22:11
Prispevkov: 26
Aktiv.: 0.14
Kraj: Nova Gorica

PrispevekObjavljeno: Sob Mar 19, 2011 5:05 pm    Naslov sporočila:   Odgovori s citatom

Hm...da podam še primer...Napisana mam 2 programa za menjanje barv z RGB led. Pač 3je PWM kanali ...increment red..decrement blue..itd.

Oba sta pač napisana tako da se vrtista v zanki..torej se nikoli ne končasata...vedanr sta ločena...

Koda:
1prog:

koda

 rjmp 1prog

2prog:

 koda

rjmp 2prog



kar bi jaz rad naredil je to...z eno tipko bi rad skakal iz enega prog v drugega..1-->2-->1-->2...vendar ko skoči iz prvega v drugega bi rad, da si shrani lokacijo, da ko bo prišel nazaj na prvi program se bo odvijal od tam naprej...ne pa da začne z nova...

To bi rad napisal...pa če tudi bi mel 5 programov da bi se usi nadaljevali kjer so končali..

jaz sem nekaj gruntal z zunanjo prekinitvijo...ampak zgleda da se bol neroden Very Happy

V kodi je prekinitveni program ki naj bi odločal v kateri program gre in nato naloži PC tega programa...zaenkrat ne deluje


Koda:
menjava_programa:


  pop r24   ; ko se izvede prekinitev PC gre v SP iz katerema moremo pobrat vrednost.
  pop r30  ; pobere visji in njzji del PC od prejsnega programa
  pop r31

  inc r25
  cpi r25,1       
  breq program1prek
  cpi r25,2            ;  izbere naslednji prog.
  breq program2prek

program1prek:
     
         sts $62,r30
    sts $63,r31      ;najprej shrani vrednost PC od prejšenjga programa v SRAM
   
    lds r30,$60
    lds r31,$61      ; pobere PC za svoj program

         push r31
    push r30         ;naloži v sklad 
    push r24

    rjmp cez


program1prek:
         sts $60,r30
    sts $61,r31       
     
     
    lds r30,$62
         lds r31,$63

    push r31
    push r30
    push r24

  clr r25           
 
 cez: 
 
 



reti
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Mar 19, 2011 8:59 pm    Naslov sporočila:   Odgovori s citatom

Nisem se poglabljal v program a tole si si narobe zamislil. Takole z skladom ne bo šlo. Sklad si predstavljaj kot kup z listi papirja na katerega si si zapisal podatke. Če si liste z podatki zlagal po vrsti. Prvi položen ima recimo vrednost 3 drugi 5 tretji 10. Prvega ko dvigneš ima vrednost 10 sledeči 5 če vmes enega z vrednostjo 12 položiš bo naslednji dvgnjen imel vrednost 12.

Celotnega programa se bi morda moral lotiti pisat drugače. Uporabil bi recimo prekinitev enega timerja. Ob prekinitvi bi bral tipke. Glede na stanje tipk bi postavljal bit(e) nekega "kontrolnega" registra. Glede na postavljen bit tega registra bi v nadaljevanju prekinitvene rutine spreminjal vrednost PWM-ja.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Laney
Član
Član



Pridružen-a: Čet 09 Sep 2010 22:11
Prispevkov: 26
Aktiv.: 0.14
Kraj: Nova Gorica

PrispevekObjavljeno: Sre Apr 13, 2011 6:08 pm    Naslov sporočila:   Odgovori s citatom

Koda:

         ldi r16,255
         out OCR1AL,r16
         ldi r16,50
         out OCR1AH,r16


V register OCR1AL se cifra lepo prenese.Ko pa pride simulator do out OCR1AH,r16 se cifra pojavi v registru OCR1AH ko pa gre na naslednji ukaz pa kar izgine..je imel kdo podobne probleme ?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 604
Aktiv.: 3.42

PrispevekObjavljeno: Pet Sep 09, 2011 8:44 pm    Naslov sporočila:  Za začetek Odgovori s citatom

Ker Silvo nič več ne nadaljuje Sad predavanja se moramo znajti po svoje.
Tale stran je dobra;
http://sites.google.com/site/avrasmintro/home/timer-counters-pwm-1

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
majkel
Član
Član



Pridružen-a: Sre 22 Avg 2007 15:45
Prispevkov: 84
Aktiv.: 0.39
Kraj: Maribor

PrispevekObjavljeno: Pon Nov 21, 2011 10:27 pm    Naslov sporočila:   Odgovori s citatom

Imam vprašanje glede tega ali se je že kdo igral z podobnim primerom kot je na spodnji sliki. Izhod tega vezja bi peljal na uC vendar nikakor ne najdem pravih vrednosti elementov da bi imel na izhodu ali "0" ali "1". Na strani kjer je 220V ac bo eno stikalo, kadar bo sklenjeno bi želel potem imeti na izhodni strani logično stanje.
Sem pomeril zadevo pa imam najnižjo napetost na izhodu cca. 2,5 V ali pa 5V.

Kakšen predlog?



220v-power-interface-diagram.gif
 Opis:
 Velikost datoteke:  39.66 KB
 Pogledana:  2 krat

220v-power-interface-diagram.gif


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1031
Aktiv.: 4.39

PrispevekObjavljeno: Pon Nov 21, 2011 11:01 pm    Naslov sporočila:   Odgovori s citatom

Ali je R1 pravilno preračunan, glede na parameter diode optocouplerja ? Mogoče se tranzistor ne odpre dovolj, za poln preklop.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.19
Kraj: Dragomer

PrispevekObjavljeno: Tor Nov 22, 2011 11:03 am    Naslov sporočila:   Odgovori s citatom

To naj bi bil, verjetno, senzor prisotnosti 220VAC.

Jaz sem ga delal brez tranzistorja, samo pullup upor za +5V in kondezator za izgladitev. No, ja in uporabil sem optospojki, ki je imela dve svetleči diodi obrnjeni vsaka v svojo smer, tako da je optospojkoa osvetljena v obeh polperiodah.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
majkel
Član
Član



Pridružen-a: Sre 22 Avg 2007 15:45
Prispevkov: 84
Aktiv.: 0.39
Kraj: Maribor

PrispevekObjavljeno: Tor Nov 22, 2011 4:46 pm    Naslov sporočila:   Odgovori s citatom

Vilko ideja je da prekinjam 220V na vhodni strani z gumbom.Na izhodni strani optokoplerja pa želim imeti signal 0-5V, ki ga lahko peljem na pin uC.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3362
Aktiv.: 14.19
Kraj: Dragomer

PrispevekObjavljeno: Tor Nov 22, 2011 6:35 pm    Naslov sporočila:   Odgovori s citatom

Na 220VAC strani prekinjati z gumbom ima smisel samo, če istočasno vklapljaš in izkljapljaš kako napravo, in uC bi moral vedeti, ali je naprava pod napetostjo ali ne.
Če temu ni tako, daš tipko kar na +5V strani med maso in uC z pull up uporom.

Tisto, da je tranzistor odveč, še vedno velja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
majkel
Član
Član



Pridružen-a: Sre 22 Avg 2007 15:45
Prispevkov: 84
Aktiv.: 0.39
Kraj: Maribor

PrispevekObjavljeno: Tor Nov 22, 2011 8:21 pm    Naslov sporočila:   Odgovori s citatom

Vem da bi bilo lažje vse skupaj izvest z tipko. Vendar mora biti tako izvedeno s tem stikalom, ki prekinja 220V; izbiram 2 načina delovanja programa.Seveda bi bilo z tipko lažje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 11, 12, 13
Stran 13 od 13

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 495 dni


Powered by phpBB © 2001, 2005 phpBB Group