U potrazi za tartufima AVR-a

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Istina Kizo, iako imao sam slučajeva da na nekim AVR kontrolerima ostanem bez TIMER-a i kao u nadi koristiti ću WDT, a ono WDT ne može pozvati ISR, samo može napraviti reset... Ne znam napamet o kojem se točno AVR-u radilo, ali znam da nije na svima podržan poziv ISR-a, samo reset MCU-a.

EDIT:
Baš potražio koji je to bio: ATMEGA32 nema tih mogućnosti.
InTheStillOfTheNight
sonata
Napredujem
Napredujem
Posts: 121
Joined: 08-01-2013, 18:01

Re: U potrazi za tartufima AVR-a

Post by sonata »

Eto, da se i ja "vratim" na WD, sve sam više uvjerenja (ali i dalje "uvjerenja") da ne treba razmišljati o WD-u koji bi resetirao kontroler, nego da treba maksimalnu pažnju posvetiti izvedbi savršenog napajanja i savršenog filtriranja signala. Obzirom da sam naišao na link gdje se u kompletno samostalnoj elektronici za tuning ("Stand Alone") koristi ATmega 128 (a ja ciljam na 328), očito su ljudi uspjeli postići stabilan rad sustava bez resetiranja: Stranice 1 i 9: http://www.vems.hu/files/MembersPage/Ri ... manual.pdf

Naime, u periodima gdje pri 6000 okretaja motora duty cycle injektora jednog cilindra (4-cil. motora) traje 20 ms efektivno ispada da treba okidati neki od injektora svakih 5 ms. Ili još češće ako se radi o 6 cilindara ili o 8000 okretaja. Ne vjerujem da tu ostaje prostora korištenju WDT-a koji bi resetirao kontroler ako se dotični, recimo, ne "odazove" svake npr. 2-3 ms. Takav kontroler mora raditi "savršeno" ili ne raditi uopće.

OK, to je moj "neobrazovani" osjećaj.

Zaključak je (izveden iz ovog, a i iz nekih stranih foruma) da se najveća pažnja treba posvetiti napajanju mikrokontrolera i kvalitetnoj prirpremi signala (npr. da se na svaki digitalni ulaz stavi RC filter i schmittov trigger, da se na svaki analogni ulaz stavi pojačalo sa RC filterom itd...) i, naravno, kvalitetno napisanom softveru bez ikakve mogućnosti ulaska u beskonačnu petlju. Neka me netko ispravi ako griješim, ipak sam početnik u svijetu mikrokontrolera (a uz to još i po struci strojar :D )
Nullius addictus iurare in verba magistri
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: U potrazi za tartufima AVR-a

Post by Maki »

Nadam se da nisam strasno pogrijesi topic...
Pronasao sam jedan kod na internetu. Radi se o frekvenciometru. Vecina koda mi je razumljiva no buni me jedan dio ,a to je A = B * 65536 . Ako netko mozda zna sto je time "pjesnik" htio reci :) .
Radi se o BascomAVR-u i ATmega8-ci .
Evo koda:

Code: Select all

$regfile = "m8def.dat"
$sim
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Int_counter1_1
On Ovf0 Int_timer_0
Dim Int_shomar As Long , A As Long , B As Byte , F As Single
B = 0
Cls
Start Timer0
  Lcd "start..."
'******************************************************************************
Do

Loop
End
'******************************************************************************
Int_timer_0:
Incr Int_shomar
If Int_shomar > 30 Then
Stop Timer0
Cls : Home
A = B * 65536
A = A + Counter1
Lcd "frequency="
Lowerline
Lcd A ; "HZ"
B = 0
Int_shomar = 0 : Counter1 = 0
Start Timer0
End If
Return
'******************************************************************************
Int_counter1_1:
Incr B
Counter1 = 0
Return
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: U potrazi za tartufima AVR-a

Post by Maki »

Nasao sam drugi kod od kolege Kukinjosa :) koji je razumljiv .
Evo nalizi se ovdije : www.elektronika.ba/forum/viewtopic.php?f=13&t=14000
Hvala !
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: U potrazi za tartufima AVR-a

Post by Kukinjos »

:) pretekao si me, ja sam na taj i zaboravio. Ali evo svejedno sam iskomentirao ovaj prethodni kod, pa pogledaj, iako baš nisam uvijek najrazumljiviji :roll:

Code: Select all

$regfile = "m8def.dat"
$sim
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Int_counter1_1
On Ovf0 Int_timer_0
Dim Int_shomar As Long , A As Long , B As Byte , F As Single
B = 0
Cls
Start Timer0
Lcd "start..."
'******************************************************************************
Do

Loop
End
'******************************************************************************
' svakih 32,768 ms
Int_timer_0:
   Incr Int_shomar
   If Int_shomar > 30 Then                                  ' 30 impulsa po 32,768ms = cca 1s
      Stop Timer0                                           ' zaustavi timer0

      Cls : Home                                            ' obriši ekran i postavi se na početak
      A = B * 65536                                         ' pročitaj izbrojani broj impulsa (B) i pomakni ga u gornju riječ
      A = A + Counter1                                      ' dodaj ostatak izbrojanih impulsa i dodaj ga u donju riječ
      Lcd "frequency="                                      ' ispiši na displeju "frequency"
      Lowerline                                             ' a u donju liniju
      Lcd A ; "HZ"                                          ' vrijednost u Hz

      B = 0                                                 'obriši brojač impulsa
      Int_shomar = 0 : Counter1 = 0                         ' obriši brojač interrupta od 32,768 ms i obriši ostatak impulsa
      ' iz 16 bitnog timer/countera1
      Start Timer0                                          ' ponovno pokreni timer0
   End If
Return
'******************************************************************************
' svakih 65535 impulsa
Int_counter1_1:                                             ' interrupt se pojavljuje nakon što 16-bitni timer izbroji 65535 imp.
   Incr B                                                   ' tad poveća B za 1
   Counter1 = 0                                             ' i obriše ostatak u brojaču, kako bi mogao ponovno počet brojit
Return
Drugi put otvori novu temu, ovo je ipak programiranje u C-u, a mi se "igramo" s basicom 8)
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: U potrazi za tartufima AVR-a

Post by Maki »

Puno Hvala !
Sad sam skuzio cemu taj B .
Hvala !

Razmisljao sam si da otvaram novu temu , ali reko da nebu tema od 2-3 posta ...
No sljedeci put cu ju otvorit .
Hvala jos jednom !
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Pozdrav forumaši,

Nekako ste mi nestali zadnjih godina, i ja uporno navratim tu i tamo da vidim što ima novoga, a tema, barem AVR-a, prazna... Di su Kizo, Buco, abc, Kukinjoš i ostala ekipa, što se mudro razvija? Inače, počeo sam pisati za ABC o AVR-u, mogu skenirati tekstove kada izađu pa ih dići na net, valjda smijem, to još moram provjeriti... Ovaj puta sam počeo pisati o ARDUINO-u jer je za početnike jednostavniji

Pozdrav
InTheStillOfTheNight
User avatar
LIAM
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 379
Joined: 27-06-2008, 14:52
Location: Rijeka - Hrvatska

Re: U potrazi za tartufima AVR-a

Post by LIAM »

Pozdrav
Tvoji tekstovi su uvijek dobro došli i rado ih čitam stoga...............
User avatar
VolkD
Napredujem
Napredujem
Posts: 199
Joined: 06-09-2008, 17:24
Location: Divaca (Slovenija)
Contact:

Re: U potrazi za tartufima AVR-a

Post by VolkD »

A što mi je fin ovaj tekst, baš zbog toga, što i meni arduino nije,....

Postoji AVR, postoji pločica, postoji programator, USB, PC i nekoliko žica amo tamo. Zašto je oko svega toga treba napraviti omot zvani Arduino i pomoču njega sakriti pola toga, što bi ljudi trebali da vide ?

Jednostavno - radi komerciale. Možda to stvarno treba. Ne znam. Ja ne volim.
User avatar
grunf
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 19-04-2008, 14:22
Location: Cvjećara

Re: U potrazi za tartufima AVR-a

Post by grunf »

Odlican tekst, kao i sve ostalo iz tvoje kuhinje :-). Cuj, radim u srednjoj tehnickoj skoli, predajem taj famozni predmet Mikroracunari, svjestan sam da Arduino nije najbolja opcija, ali na tom fonu me razumije 90% njih, na onom drugom registri, bitovi 0.5%. To bi bio jedini razlog zasto Arduino, jer uspjeh, na tom nivou, je kada nauce razlikovati digitalno od analognog :-). A ako usput shvate i osnove elektronike, pa uspiju nesto samostalno osmisliti i isprogramirati, na kraju ispadne sve woowww. Dobiju malo sampouzdanja, a nadam se da ce barem neki od njih, jednostavno prerasti arduino :-)... Toliko
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Ono što mene tu smeta je činjenica da ekipa recimo srednje tehničke škole u digitalnoj elektronici obavezno uče 74 skupinu, logičke operatore, bla, bla, bla... No ako baš nešto želiš na MCU napraviti nužno moraš koristiti isto znanje operatora, pogotovo kada se radi o izlazu na registar sa ILI, AND ili XOR operacijama...

U principu sve se to već uči, samo nitko pojma nema čemu služe takve stvari, a svi koriste pinMode() arduino-a... Počeo sam pisati novi tekst, valjda ću ga završiti do 5.11 pa dignem online
InTheStillOfTheNight
User avatar
VolkD
Napredujem
Napredujem
Posts: 199
Joined: 06-09-2008, 17:24
Location: Divaca (Slovenija)
Contact:

Re: U potrazi za tartufima AVR-a

Post by VolkD »

O mnogo hvala, možeš maknuti. Morat ču doči lično u split, da ti se zahvalim. Nije šala, da mi je znati kde te pronači, stvarno bi u prvoj prilici navratio.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: U potrazi za tartufima AVR-a

Post by Kukinjos »

Drago mi je pomoći, javi se na PM kad budeš svraćao do Splita :D
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

InTheStillOfTheNight
Dzenny_assembly
Napredujem
Napredujem
Posts: 118
Joined: 11-09-2014, 04:03

Re: U potrazi za tartufima AVR-a

Post by Dzenny_assembly »

Svaka cast na napisanim tekstovima druze. Procitao sam dobar dio teksta koji si napisao (od pocetka) i podrzavam te u potpunosti. Samo bih te molio da posvetis malo visu paznju assembleru. Nije on toliko los i komplikovan kao sto mnogi misle. Ja sve programe radim samo u assembleru i toliko sam ga zavolio da su mi visi jezici smijesni. Nemam nista protiv toga ako neki proekat treba zavrsiti nabrzinu pa se posluziti nekim visim jezikom (radi ustede vremena) medzutim kada je u pitanju neki ozbiljniji projekat mislim da bi se trebalo okrenuti assembleru.

Nepostoji taj visi jezik koji moze zeljenu funkciju izvrsiti brze i efikasnije od assemblera a pritom utrositi najmanje programske i ram memorije.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Nisam niti ja siguran o čemu pisati pa eto kamo vjetar puhne... Programiranje je komplicirano sa svih gledišta, i assemblera i c-a. Tako se barem meni čini. Neke je stvari jednostavnije objasniti na razini assemblera, neke na razini C-a. Kao primjer mogu navesti sbi i cbi. Daleko je jednostavnije upravljati bitovima u asm nego u c-u sa ovime x|=(1<<BIT); x&=~(1<<BIT); Naravno, sada u C-u moramo ponoviti logičke operatore da možemo upravljati PIN,PORT i DDR registrima jer to je valjda početak nekog programiranja. U asm ovime se ne bi niti bavili, nego samo adresom registra i sbi, cbi instrukcijama.

S druge strane imamo ISR koji je u C-u puno jednostavniji od asm-a. ISR(vector){} i evo nas. No ako to idemo učiti na razini asm-a stvari se već kompliciraju. uključen I bit, uključen interrupt, zastavica, HW isključuje I bit, PC na stack, skok na vektor, skok sa vektora na rutinu... Dakle već se tu nakupilo dosta sranja koja u asm moramo proći.

Ni sam ne znam što je veće zlo, ali mi se obe stvari čine komplicirane za totalnog neznalca. Naravno da je lako reći "Jednostavno je", ako znaš.

Treba uzeti u obzir da početnici, pogotovo oni koji se hvale Arduino IDE-om, ne znaju za postojanje HW-a MCU-a. Ne znaju niti da je MCU AVR arhitekture, niti da je 8 bitni. Susreo sam nekoliko tipovi koji "znaju" arduino, ali ne znaju što je AVR i ATMEL. Dakle, ako po tome sudim, oni su u velikim govnima sa znanjem i sigurno ništa nije jednostavno.
InTheStillOfTheNight
Dzenny_assembly
Napredujem
Napredujem
Posts: 118
Joined: 11-09-2014, 04:03

Re: U potrazi za tartufima AVR-a

Post by Dzenny_assembly »

Sve je više takvih. Ljudi su kao i struja, idu linijom manjeg otpora. "Zašto učiti sve te gluposti o arhitekturi kontrolera i načinu njegovog rada kad jednostavno mogu naučiti jedan viši programski jezik i pisati programe."
Vjerujem da postoje i oni koji znaju za pojam varijabla a neznaju za registar.
Takvih je sve više. Na našu žalost, s obzirom da se softver svakoga dana usavršava i postoje razne olakšice u programiranju takvi če bolje proči u životu. Ja sam potrošio godine dok sam to sve shvatio i opet sam bez posla a oni koji su za par mijeseci stekli neko osnovno znanje več apliciraju za mijesta programera.
Neznam čemu ovo vodi al neide na dobro...
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Da danas mogu birati vjerojatno nikada ne bih učio ova sranja. Čak sam i svima na PM odgovarao da se ostave programiranja... Naravno ne baš tim direktnim načinom, ali sam im rekao da je potrebno uložiti puno vremena, a da je novac zaraditi jaaako teško. Uostalom, puno je lakše raditi neki glupi posao bez pameti i primati nešto manju plaću, ili možda manju. (Ovo je upitno)

Jedini razlog zašto se ovime bavim je zato što to volim, a pretpostavljam i svi ostali forumaši imaju sličan razlog. Realna situacija je takva da je lakše do posla sa dobrim dudama i većom guzom nego bilo kakvim znanjem. Eto primjer: Otvori bilo koji oglas poslova i usporedi posao konobarica/programera. Zanimanje konobarica ima 2 skupine, ružne konobarice i zgodne konobarice, a posao programera ima oohohohoho skupina. E sad ti nađi posao na kojem ćeš pisati program za AVR recimo. To ti je gotovo nemoguće. Ali da si recimo cura, i još da imaš dobro dupe možeš se zaposliti za 2 dana jer je izbor birtija još uvijek dobar. Tako je kod nas, vani je možda drugačije, ne znam.

To što ljudi čitaju da je programiranje dobro plaćeno... u HR kako kome. Znam i mag. FER-a koji rade za 5000 kn u Zagrebu, a znam i konobare koji rade za 5000+bakšiš u istom gradu Zagrebu.
InTheStillOfTheNight
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: U potrazi za tartufima AVR-a

Post by Maki »

InTheStillOfTheNight wrote: Jedini razlog zašto se ovime bavim je zato što to volim, a pretpostavljam i svi ostali forumaši imaju sličan razlog...
Upravo je to ono što je bitno.
Ako netko doista želiš nešto shvatiti, potrudit će se da dođe do informacije.

Prvi mikrič mi je bio PIC16F627 :)
E to je bila mrcina :lol: , kad sam uspio upaliti ledicu bio sam prestreatn.
Mislim da smo manje više svi tako krenuli, od ledice :)
Tad nisam imao pojma o registrima, brojilima i ostalom, ali s vremenom je i to došlo na red, zatim sam počeo to povezivat sa mikrokontrolerima i shvatio kako brojne osnovne stvari rade iako još uvijek ne znam sve čari mikrča :oops: . Ali opet s vremenom i to otkrivam :lol:

Što se samog Arduina tiče, tu se u potpunosti slažem sa vama.
Osobno smatram da gotove platforme opet kriju neke čari.
Također smatram da je dobar odabir krenuti sa nekom manjom eksperimentalnom pločicom, programatorom, mikrokontrolerom i nekolik osnovnih elemenata.
Programski jezik za početak možda odabrati onaj koji je nekom bliži, manje strašniji, svatko je različit.
Slažem se, asembler je zakon, ali ipak nekom dijetetu je bliži basic ili drugi jezik. Vjerujem da ako stvarno zagrize za programiranje mikriča, upozna neke osnovne stvari (registre, brojila,...), lakše shvati asembler.
Asembler je za početnike koji su upoznati sa nekim osnovnim pojmovima iz digitalne i analogne elektronike te koji su upoznati sa samim radom mikriča, lakše shvate same naredbe.

To su moji neki stavovi i razmišljanja, kao što je već spomenuto onaj koji to zavoli, lako krene sam proučavat sve ostalo.
Dzenny_assembly
Napredujem
Napredujem
Posts: 118
Joined: 11-09-2014, 04:03

Re: U potrazi za tartufima AVR-a

Post by Dzenny_assembly »

Slažem se Maki s tobom, medžutim mnogi koji su krenuli odmah od Basic-a ili C-a i nepomišljaju učiti assembler iz jednostavnog razloga. Jednu instrukciju u C-u čini nekoliko assemblerskih instrukcija,
i nekome ko je navikao na takav način programiranja i sam C je jako složen a assembler beskrajno komplikovan i tuj prestaje svako zanimanje za njega. Svakome zdrav razum nalaže da ide naprijed a ne nazad. Učiti assembler poslije C-a je svakako za njihovo shvatanje korak nazad. Ja lično volim assembler i uvijek ču ga maksimalno koristiti jer sam navikao da imam uvid o tome šta se zaista dešava u kontroleru dok izvršava neki moj program. To nije slučaj ni sa jednim višim jezikom.

Pored svega toga današnji assembler ima mnogučnost da pomoču makroa jednostavno osmisliš "svoj vlastiti jezik" i pritom da opet imaš uvid o tome šta se dešava u kontroleru.
I da, moj prvi kontroler je bio PIC16F84A :D
Post Reply