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 

Bascom avr pomoč pri programu

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
frimd
Član
Član



Pridružen-a: Čet 15 Okt 2009 21:01
Prispevkov: 141
Aktiv.: 0.74
Kraj: Slov. Konjice

PrispevekObjavljeno: Ned Mar 13, 2011 12:46 pm    Naslov sporočila:  Bascom avr pomoč pri programu Odgovori s citatom

Rad bi napisal sledeči program:

iz senzorja bi prisel signal na čip, če bi bil ta signal prisotem 30min bi se setiral en izhod, če bi se signal izklopil prej kot v 30min, se ne zgodi nič


Nazadnje urejal/a frimd Ned Mar 13, 2011 8:13 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.32
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Ned Mar 13, 2011 1:14 pm    Naslov sporočila:  Re: Bascom avr pomoč pri programu... nujno Odgovori s citatom

frimd je napisal/a:
Rad bi napisal sledeči program:

iz senzorja bi prisel signal na čip, če bi bil ta signal prisotem 30min bi se setiral en izhod, če bi se signal izklopil prej kot v 30min, se ne zgodi nič


Kateri AVR uporabljaš? (Pa še njegovo frekvenco?)
Mora biti čas točen - 30 minut?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
frimd
Član
Član



Pridružen-a: Čet 15 Okt 2009 21:01
Prispevkov: 141
Aktiv.: 0.74
Kraj: Slov. Konjice

PrispevekObjavljeno: Ned Mar 13, 2011 1:33 pm    Naslov sporočila:   Odgovori s citatom

uporabljam attiny13
čas niti ni tako pomemben, lahko je tudi 20sec
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
fast
Neznanec
Neznanec



Pridružen-a: Ned 13 Mar 2011 12:11
Prispevkov: 4
Aktiv.: 0.02
Kraj: TRST

PrispevekObjavljeno: Ned Mar 13, 2011 1:57 pm    Naslov sporočila:   Odgovori s citatom

Osnutek programa je zapisan v stilu programiranja v jeziku C.

izhod=off;
stevec=0;
inastavljena_vredost=xxx; //xxx=mejna vrednost senzorja
stevec_maks=30*60; //30=minute 60=sekunde v 1 minuti
while(1)
{
if(beri(senzor)<nastavljena_vrednost)
{
if(stevc>0) stevec=0;
else if(stevec>-stevc_maks) stevec=stevec-1;
}
else
{
if(stevc<0) stevec=0;
else if(stevec<stevc_maks) stevec=stevec+1;
}
if(stevec=stevec_maks) izhod=on;
else if (stevec=-stevec_maks) izhod=off;
zakasnitev(1s);
}

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



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5530
Aktiv.: 24.04
Kraj: Domzale

PrispevekObjavljeno: Ned Mar 13, 2011 3:28 pm    Naslov sporočila:   Odgovori s citatom

Na hitro: deklariraš čip, frekvenco, vhod in izho, skonfiguriraš timer interrupt na 1 s, potem pa:

Koda:


reset izhod
dim sekunda as word

do
   if vhod = 1 then
      sekunda = 0
          do
             if vhod = o then exit do
             if sekunda > 1800 then
                      set izhod
                      wait 5
                      reset izhod
             endif
          loop
   endif
loop

timer_rutina:
   incr sekunda
return



LP, Grega

_________________
...lahko pa se tudi motim ...
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.88
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Mar 13, 2011 3:44 pm    Naslov sporočila:   Odgovori s citatom

V primeru, da ne gre za sila natančen čas ter imaš namen uporabit interni oscilator, potem je boljša varianta dati mikrokontroler v SLEEP( Power-down). Zbudi ga pa WDT reset. Preddelilnik za WDT pa nastaviš recimo na 1024K kar znese 8s ne glede na clock mikrokontrolerja. WDT ima svoj oscilator. Ko se zgodi 225 prekinitev je poteklo 30min. ( v času čakanja lahko mikrokontroler počne tudi kaj drugega, kot pa mleje v zanki) Poleg tega bo poraba bisteno zmanšana, sploh če gre za kako baterijsko napajano aplikacijo)
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.32
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Ned Mar 13, 2011 5:42 pm    Naslov sporočila:   Odgovori s citatom

Silvo, hvala za odlično idejo! Wink

frimd, vzel sem si čas in ti v Bascom-AVR napisal kodo z več komentarji kot pa kode Razz Upam, da boš razumel delovanje.

Malo sem jo še zakompliciral, da sem odstranil nekaj bugov. Deluje s pomočjo Watchdog timerja, AVR se vmes da v Power-down Sleep Mode, kjer žere le 0.5-2μA toka Wink

Na začetku imaš tri vrstice (13, 14 in 16) ki jih po potrebi spremeniš, in to je vse! Very Happy


Če ne bo delalo, napiši.



Delay switch (ATtiny13).zip
 Opis:

Download
 Ime datoteke:  Delay switch (ATtiny13).zip
 Velikost datoteke:  2.27 KB
 Downloadano:  18 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
frimd
Član
Član



Pridružen-a: Čet 15 Okt 2009 21:01
Prispevkov: 141
Aktiv.: 0.74
Kraj: Slov. Konjice

PrispevekObjavljeno: Ned Mar 13, 2011 5:53 pm    Naslov sporočila:   Odgovori s citatom

ko pide signal setira določen izhod, sedaj bi rabil se da bi pritisnil tipko reset in bi slo vse od zacetka
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.32
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Ned Mar 13, 2011 5:55 pm    Naslov sporočila:   Odgovori s citatom

frimd je napisal/a:
ko pide signal setira določen izhod, sedaj bi rabil se da bi pritisnil tipko reset in bi slo vse od zacetka


Daj napiši bolj berljivo, no Mad Dela koda kot bi morala ali ga takoj postavi na visok nivo?

Ja če uC resetiraš (Reset pin na 0) bo itak šlo od začetka... Rolling Eyes
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
.
Član
Član



Pridružen-a: Čet 06 Maj 2010 20:12
Prispevkov: 1035
Aktiv.: 5.62

PrispevekObjavljeno: Ned Mar 13, 2011 6:01 pm    Naslov sporočila:   Odgovori s citatom

Mene pa samo zanima s katerim ukazom bi sprogramiral tipko da zamenja program?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.32
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Ned Mar 13, 2011 6:05 pm    Naslov sporočila:   Odgovori s citatom

ziga555 je napisal/a:
Mene pa samo zanima s katerim ukazom bi sprogramiral tipko da zamenja program?


A lahko bolj razložiš?

Vsak program definiraš kot neko zanko/rutino.

Nato lahko vežeš tipko na Inerrupt pin (INTx) in potem v prekinitveni subrutini določiš v katero programsko zanko naj gre (Goto ukaz).

Lahko pa v vsakem programu posebaj preverjaš stanje tipke ter nato preskočiš v ustrezni program.

V osnovi takole:

Goto Zanka1

Zanka1:
Do
'Koda
If Tipka = 0 Then Goto Zanka2
Loop

Zanka2:
Do
'Koda
If Tipka = 0 Then Goto Zanka3
Loop

Zanka3:
Do
'Koda
If Tipka = 0 Then Goto Zanka1
Loop
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
.
Član
Član



Pridružen-a: Čet 06 Maj 2010 20:12
Prispevkov: 1035
Aktiv.: 5.62

PrispevekObjavljeno: Ned Mar 13, 2011 8:42 pm    Naslov sporočila:   Odgovori s citatom

Hvala!!!

Morda res nisem vsega razložil, vendar ti si mi vse Wink

Drugače pa se malo igram z megapinom, ki ima gor 8 stikal Wink
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 -> Elektronika za začetnike Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 500 dni


Powered by phpBB © 2001, 2005 phpBB Group