1 / 40

Tekstovno programiranje Basic (Fast Avr)

Tekstovno programiranje Basic (Fast Avr). Matjaž Kocjančič. Mikrokrmilnik (Atmel – AT90SMega8). uP mikroprocesor. vodila. EEPROM. vodila. TWI (IIC). SPI. SRAM. Usart (rs232). Oscilator. ADC. Timer/Counter. Comp. Interrupt u. Port B. Port C. Port D. Port B? Port C? Port D?

ajay
Download Presentation

Tekstovno programiranje Basic (Fast Avr)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tekstovno programiranjeBasic (Fast Avr) Matjaž Kocjančič

  2. Mikrokrmilnik(Atmel – AT90SMega8) uP mikroprocesor vodila EEPROM vodila TWI (IIC) SPI SRAM Usart (rs232) Oscilator ADC Timer/Counter Comp. Interrupt u. Port B Port C Port D

  3. Port B? Port C? Port D? Skupine sponk na katere lahko priključimo led, tipke LCD, temp. tipala, druga integ. vezja (ura…) Sponko lahko obremenimo do 20 mA! Vrata – Port-i

  4. Spremenljivke • Kaj je spremenljivka? • Kako program ve, da je “a” spremenljivka? • “a” je lahko “karkoli”! Kaj moramo narediti? • Kakšno vrednost lahko vpišemo v “a”?

  5. Tipi spremenljivk • Bit • 0 - 1; 8 v 1x byte • Byte • 0 - 255; 1x byte • Word • 0 – 64.000 (65.535), 2x byte • Integer • -32.000 - +32.000, 2x byte, MSB=1 je minus • String • za nize (besede), npr. “Dober dan”= 9x byte • pa še druge …

  6. Kaj pomeni spremenljivka? • ang. “variable” • Spremenljivka bo hranila neko vrednost, ki se bo spreminjala! (a = 1, a = 146, a = a + 1 …) • Kje se spremenljivka hrani? • Ob deklaraciji, imenovanju spremenljivke • Dim a as byte • Program rezervira določen prostor v RAM-u • byte – rezervira 1 vrstico, 8 bitov v ram-u • Na rezervirano mesto se ne sme vpisati nič drugega!

  7. Priredilni stavki • a = 0 • Kaj naredi? • Spremenljivki a določi vrednost 0! • Seštevanje in odštevanje • a = a + 2 • vzame staro vrednost a in ji prišteje 2, shrani na lokacijo a • a = a – 2 • vzame staro vrednost a in ji odšteje 2, shrani na lokacijo a • če gre v minus mora a biti tipa integer • a=(b+12)*c-3*d

  8. Množenje in deljenje • a = a * 2, množenje • a = a / 2, celoštevilčno deljenje • a = a mod 2, ostanek celoštevilčnega deljenja • 27 / 4 = 6; 27 mod 4 = 3

  9. a = a or 2 a = 33 or 2 a = 35 0010 0001 (33) 0000 0010 (2) 0010 0011 (35) a = 33 or 3 a = 35 a = a and 2 a = 33 and 2, a = 0 0010 0001 (33) 0000 0010 (2) 0000 0000 (0) a = 33 and 15, a = 1 0010 0001 (33) 0000 1111 (15,&hF) 0000 0001 (1) Logične operacije

  10. Simbol Enačbe: y = x1 * x2, y = x1 ^ x2 Izhod je “1” le če so vsi vhodi “1”. Pravilnostna tabela Stikala: x1 x1 x2 & y y x2 AND – slo: IN

  11. Simbol Enačbe: y = x1 + x2, y = x1 V x2 Izhod je “1”, če je vsaj en vhod “1”. Pravilnostna tabela Stikala: x1 x2 OR – slo: ALI x1 ≥1 y x2 y

  12. Logične operacije • a = a xor 2 • b = not b • negacija na bitu

  13. Simbol Enačbe: y = x1 + x2, y = Izhod je “1”, le če je en vhod “1”. XOR – slo: izključni ALI • Pravilnostna tabela x1 >1 y x2

  14. 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 bit7 bit7 bit6 bit6 bit5 bit5 bit4 bit4 bit3 bit3 bit2 bit2 bit1 bit1 bit0 bit0 0 0 0 0 0 0 0 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Pozor pri priredbah • če spremenljivka preseže vrednost • a = 1; a = a * 2 • a = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 128 v ram-u a b c 256 v ram-u ? Pokvari b

  15. Pozor pri priredbah • uK je vseeno kaj mi vpišemo v “a” • uK ne preverja, če je “a” prevelik • 128 sledi 2*128 = 256 v Ram-u le 0 • a = 0 * 2 je vedno 0 • Kdo mora nadzirati velikost “a”? • Program oz. ustvarjalec programa!!

  16. Pogojni stavki • Pogojni stavek • If <pogoj> then en ukaz • If <pogoj> then • prvi ukaz • drugi ukaz • … • end if • Select

  17. If <pogoj> then prva možnost else druga možnost end if If <pogoj> then en ukaz else if <pogoj2> (lahko večkrat) drugi ukaz else tretji ukaz end if Vejitve

  18. pogoj (boolean) • a = 1 • če je pogoj izpolnjen vrne true (“1”) • sicer false (“0”) • a > 1 • a = 3, Pogoj = ? • true • a = 1 and b=0

  19. Zanke • Skupina ukazov v zanki se ponavlja • Število ponovitev je odvisno od zanke in od pogojev • For-Next • točno določeno število ponovitev • Do-Loop • neskončna ali pogojno zanka (pogoj na koncu) • While-Repeat • pogojna zanka (pogoj na začetku)

  20. Zanka for - next • for i = 1 to 10 • stavki • next • Stavki se 10x ponovijo, “next” poveča i za ena • korak večanja je privzeto 1 • lahko pa ga nastavimo • for i = 100 to 10 step -2 • stavki • next • Stavki se 10x ponovijo, “next” poveča i za ena

  21. a= 2 for i = 1 to 4 a = a * 2 next print a a = ? a = 32 a = 2 for k = 10 to 0 step -2 a = a + 2 next print a a = ? a = 14 • k a • 4 • 6 • 8 • 10 • 12 • 0 14 • i a • 4 • 8 • 16 • 32 Primeri for-next

  22. Zanka do-loop • Praviloma neskončna zanka • Ponavlja se, dokler čip deluje • do • stavki • exit do ali goto ‘s tema ukazoma lahko zapustimo zanko • loop

  23. Zanka do-loop • Lahko tudi pogojna zanka • do • stavki • loop while <pogoj> • Ponavlja, dokler je pogoj izpolnjen

  24. dim a as bit a = 1 do portd.1 = a waitms 100 a = not a loop Kaj počne zanka? Lučka d.1 se prižiga in ugaša vsakih 100 ms do portd = 2 waitms 100 portd = 0 waitms 100 loop Kaj počne zanka? Lučka d.1 se prižiga in ugaša vsakih 100 ms Primeri do-loop

  25. Branje port-ov (stikalo) • Reset DDRB.0 • sponka B0 postane vhod • a = PinB.0 • preberemo stanje sponke B0 • a = 1 (Vcc) • a = 0 (Gnd) • Enako, ko beremo druga digitalna vezja!

  26. Branje port-ov (tipk) - PullUp • Pritisnjena • PD.7 =0 • Spuščena PD.7 = odprte sponke • Rešimo s PullUp uporom! • PD.7=1 • Še boljše z internim PullUp uporom! ??

  27. Stikalo od daleč! Stikalo preden pristane v končni poziciji nekajkrat poskoči! Človek tega ne zazna! uK (glede na program) lahko zazna vsa stanja! Programer mora to upoštevati! 10-20 ms Branje port-ov (tipk) - iskrenje

  28. Branje port-ov (tipk) - Key • Višji programski jeziki imajo za pogoste probleme tovarniške podprograme! • Key Rows za nas naredi vse potrebno za branje tipk (ddr, iskrenje, pin). • &hc0 – pove kje so tipke na D! Kje? • c(16) = 12(10), 0(16)=0(10) • 1100 0000(2) • Na d7 in d6 sta priključeni tipki

  29. Primer uporabe tipk • uK določimo, kje so tipke. • Pripravimo spremenljivko za tipke • Stanje tipk prenesemo v spremenljivko • Izpisi glede na pritisnjeno tipko

  30. Tipke so na portB7, 5, 3 $Key Rows=? portb 7 6 5 4 3 2 1 0 1 0 1 0 1 0 0 0 (2) A 8 (16) $Key Rows=PORTB &hA8 $key rows=PORTC &h7E Na katerih sponkah so tipke? Koliko tipk je? 7(16)=0111, E(16)=1110 7654 3210 0111 1110 Tipke so portC6, 5, 4, 3, 2, 1 Priključenih je 6 tipk Primera izračuna &h

  31. Podprogrami • Ko program ni več kratek, • ko vključuje več neodvisnih delov • je dobro program razdeliti: • glavni program, • podprogrami! • Pri nas bodo podprogrami v isti datoteki! • Lahko pa ima vsak svojo datoteko ali več. Npr Key()

  32. Podprogram • Imenovanje (definiranje) podprograma • Declare Sub ime() • Postavitev podprograma (nekam na konec) • Sub ime() • Set Portd.1 : waitms 100 • Reset Portd.1 : waitms 100 • End Sub • Klic podprograma (nekje iz glavnega programa) • do • ime() • loop

  33. Imenovanje Postavitev podprograma Klic podprograma Primer Sub

  34. Kaj dela program? a. Utripajo desne 3 led b. Utripajo leve 3 led c. Izmenično utripajo leve in desne d. Enkrat leve nato le desne a. Naloga Sub

  35. Pisno preverjanje znanja • Tisti, ki ne pride pisat ali piše negativno bo pri vajah ustno vprašan (ni ocene iz izdelka). • Če bo več kot tretjina negativna, pišemo ponovno med vajami!

  36. Red pri pouku • Ure postajajo naporne!? • Mnenje lahko pove tisti, ki dvigne roko in ga povabim. Ostali tišina sicer povem nov način! • Eni se zelo dolgočasite! Eni sploh ne sledite! Zakaj? • Tisti, ki moti dobi termin pri vajah (Najprej ustno v SP3, šele nato vaje v KRA).

  37. Zvezki • V kratkem bom pobral zvezke (teorija + vaje)! • Tisti brez dobijo termin pri vajah. Vsi v sp3, po spraševanju v KRA.

  38. Konec 08/09

  39. Podprogrami in funkcije

  40. Prekinitve

More Related