mcu

Post on 27-May-2015

649 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

miniintervention into robo-world by Ing. Pavel Bansky

TRANSCRIPT

Velmi jemný úvod do programování microprocesorů

Ing. Pavel Bánský

Agenda Trocha historie Trocha teorie Programování Komunikace s okolním světem

Trocha historie Vysoký stupeň integrace umožnil výrobu

mikroprocesorů „stovky“ klopných obvodů v jednom pouzdře „tisíce“ tranzistorů v jednom pouzdře 1971 – první mikroprocesor Intel 4004 2009

8 bitové mikroprocesory 16 bitové mikroprocesory 32 bitové mikroprocesory

Trocha teorie Mikroprocesor = mikropočítač

Poslouchá příkazy (velmi atomické instrukce) Má paměť

Flash – pro uložení programu RAM – pro běh programu a „přemýšlení“

Vstupně a výstupní obvody Digitální Analogové

Příklad programu (symbolické instrukce)

odecet: clr C mov A,DOLNI2 subb A,DOLNI1 mov POMOCD,A mov A,HORNI2 subb A,HORNI1 mov POMOCH,A clr C mov A,POMOCH rrc A mov POMOCH,A

mov A,POMOCD rrc A mov POMOCD,A

clr C mov A,POMOCH rrc A mov @R0,A

inc R0

mov A,POMOCD rrc A mov @R0,A

inc R0 djnz R1,HLAVNI

mov R1,#POCET mov DPTR,#VYSTUP mov R0,#PROSTOR

ZAPIS: mov POMOCH,@R0 inc R0 mov A,@R0 movx @DPTR,A

inc DPTR

mov A,POMOCHm movx @DPTR,A

inc DPTR inc R0 djnz R1,ZAPIS

KONEC: sjmp KONEC

test1: jnc vymen ljmp odecet

vymen: mov POMOCD,DOLNI1 mov DOLNI1,DOLNI2 mov DOLNI2,POMOCD mov POMOCD,HORNI1 mov HORNI1,HORNI2 mov HORNI2,POMOCD ljmp odecet

v=(ni+1 – ni) / 4

Programování Program se píše v PC Provádí se překlad (kompilace) do strojového

kódu Výsledný datový soubor se nahraje do

mikropočítače speciálním programovacím obvodem

Jste zděšeni?

Nebuďte

Mikroprocesory pro línější Využívají běžné mikroprocesory Obsahují interpretr vyššího programovacího

jazyka Na způsob Basic, Pascal, C, Java

Mají překladač/kompilátor vyššího programovacího jazyka

Program se nahrává pomocí seriového portu, USB, sítě

Možnost komunikace s PC pro případ ladění

Různé technologie Microsoft .NET Micro Framework

Profesionální řešení založené na procesorech ARM Objektový programovací jazyk C# Vysoká produktivita a možnosti http://www.microsoft.com/netmf

Různé technologie Arduino

Založeno na procesorech Atmel-AVR Programovací jazyk podobný C++ Snadné použití http://arduino.cc/en/Reference/HomePage

Různé technologie Picaxe

Založeno na procesorech Microchip PIC Obsahuje interpret jazyka Basic Jednoduché strukurované programování Dobrá dokumentace http://www.rev-ed.co.uk/docs/picaxe_manual1.pdf

Příklad programu (vyšší programovací jazyk) I2CDevice.I2CTransaction[] xact = new I2CDevice.I2CTransaction[] { bus.CreateWriteTransaction(new byte[] { 0x02}), bus.CreateReadTransaction(buffer) };

int count = bus.Execute(xact, 2000); if (count == 3) { int azimuth = buffer[0] << 8; azimuth |= buffer[1]; azimuth /= 10;

ShowAzimuth(azimuth); }

Komunikace s okolním světem Digitální vstupy / výstupy

Měření délky pulsů Počítání pulsů

PIN 1

PIN 2

Spouštěcí impuls 10 ms

Impuls úměrný vzálenosti 100 ms – 25ms

Komunikace s okolním světem Analogové vstupy

Měření vstupního napětí

Kam dál http://www.hobbyrobot.cz/ http://shop.snailinstruments.com

Robotický den – Soutěž Eurobot Sobota 25. Dubna 2009 10 – 17 Retro Music Hall, Francouzská 4, Praha 2

top related