AplTVY3: Porovnání verzí
Řádek 416: | Řádek 416: | ||
https://www.arxterra.com/9-atmega328p-timers/ | https://www.arxterra.com/9-atmega328p-timers/ | ||
[[Soubor:atmega328p-timers3.png|400px|link:https://www.arxterra.com/9-atmega328p-timers/]] | |||
Delay 250 ms (neověřeno): | |||
[[Soubor:atmega328p-timers.png|150px|right]] | [[Soubor:atmega328p-timers.png|150px|right]] | ||
{| | {| | ||
|- | |- |
Verze z 22. 1. 2023, 13:38
Tématický plán | |
T0 - BOZP – řády odborných učeben T1 – Popis vývoje mikropočítačové aplikace T2 – V/v brány, jejich vlastnosti a využití T3 – Tvorba programu pro výstupní moduly T4 – Vývoj mikroprocesorové aplikace – LED T5 – Časové zpoždění T6 – Vstupní moduly – tvorba programu pro vstupní moduly T7 – Vývoj mikroprocesorové aplikace – test vstupů T8 – Programování aplikace T9 – Naprogramování mikropočítače T10 – Vývoj mikroprocesorové aplikace – čidlo světla T11 – Vývoj mikroprocesorové aplikace – 7 segment T12 – Vývoj mikroprocesorové aplikace – motory T13 – Vývoj mikroprocesorové aplikace – čidlo teploty T14 - Opakování |
Otázky k opakování | |
|
Domácí úkoly 2021-22: | |
22.2 dle návodu na http://wiki.sps-pi.cz/index.php/IBM-IoT#postup si nainstalujte v cloudu nebo lokálně Node-RED. Odevzdejte výsledné PrtScr dle vzoru v příloze (samozřejmě s vašimi údaji "d:org:device_type:device_ID"; např.: "d:3yaaz5:wemos:metostanice"; 1.3. V Tinkercadu vyzkoušejte postupně zapojení s LED, Button, LDR, 18B20, TMP35 ......tak, aby zjištěná hodnota výstupní proměnné nebo její stav byla vyposílána na seriový port (monitor). Lze otestovat i s ESP8266 v Wokwi. YT: Arduino Online Simulator Free Arduino and ESP32 by Wokwi Odevzdejte všechny výsledné PrtScr.
|
Domácí úkoly 2020-21: | |
14.9. Dohledat SP z předmětů HW a PRAI, přinést sešit od pondělí 12.10.2020 zítra (a příští týden skupina PSP) se koná dle rozvrhu prezenční výuka předmětu "praktická cvičení" v PC učebně VYT5. Kdyby jste se (z nějakých důvodů) nemohli dostavit, budu rád, když se zúčastníte výuky alespoň distančně a budete mít na svých PC nainstalován program Deeds (testování seminární práce na návrh SLO) a IDE (vývojové prostředí) pro tvorbu programu v JSA (jazyk symbolických adres - assembler) procesoru 8051 (např. MCU 8051 IDE, EdSIM51, Ride..............) a pro skupinu PSP také IDE pro ATmega328 (je v Arduinu). Výuka poběží tedy paralelně a do třídní knihy zapíši absenci jen těm, kteří nebudu ani prezenčně (určitě upřednostňuji) a ani distančně na vyučování.
21.12. Nakreslit blok. schéma CPU s jádrem AVR včetně popisu funkce jednotlivých částí (obr. ve stylu jako v příloze). Pozor CPU ne MCU! pozn. DÚ jen pro ty, kteří nejsou spokojeni se známkou z dnešního testu. 18.1. V odpovědi odevzdejte PrtScr ukázky práce s aritmetickou operací ADD. Příklady: -84 +60, -84+100, 84+100, -84-100 atd. Sledujte hlavně C a OV. 22.2. odevzdejte minimálně jedno řešení z úkolů: 1) vyzkoušení log. funkcí v asm (ANL, ORL, XRL, CPL) - natočit videoscreen testování programu (MT, OBS, Bandicam) 2) bin čítač s omezením do 500us (videscreen) 3) desítkový čítač 0->9 (videscreen) 4) desítkový čítač 00 -> 99 (videscreen) 5) modifikované *.ino pro DHT11 + json 6) přidané zařízení (PrtScr) 7) nastavení CloudFoundry apps/services (PrtScr) 8) nastavení Node-Red pro DHT11 15.3.Test-PRA3rPSPv01 31.3.Odevzdejte řešení ukazující využití zpoždění s dvěma (alt. 3mi) registry v IDE pro MCU ATmeg328 7.6.2021: program v asm pro blikání LED o f = 5Hz. 21.6.2021: program v asm, kde po zmáčknutí tlačítka připojené na pin 2. LED na pinu 13 3x zabliká a opět čeká na aktivaci od tlačítka
Pozn.: Jak odevzdávat domácí úkoly |
Domácí úkoly 2019-20: | |
1. Postupně v aplikaci TinkerCad vyzkoušejte úkoly tak, aby jste zvládli (např. u praktické maturity) zapojit na KNP a naprogramovat mikroprocesorovou aplikaci s LED, RGB, tlačítkem, potenciometrem, PIR, LDR, čidle teploty, PING, servem, krokovým motorem atd. Každý úspěšný experiment zpracujte v postupně rozšiřující dokumentaci. Mikroprocesor lze použit: Arduino, PICAXE, 8051 apod. 2. Podívejte se na výsledky letošního školního a krajského kola SOČ SOČ 2020 3. Do odpovědi na tento úkol zkopírujte link na video prezentaci SOČ práce, která vás nejvíce zaujala. Pozn.: Soutěží se v 18ti vědních oborech. Letos museli soutěžící natočit video o své práci a umístit na YT. (vyhledávací slova: Středoškolská odborná činnost a číslo oboru (10, 18 ....)) . Např. pro obor Elektrotechnika: Středoškolská odborná činnost 10 (https://bit.ly/2yaQ9m7) nebo pro obor Informatika: Středoškolská odborná činnost 18 (https://bit.ly/2Sj8wME) 4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. |
Témata na cvičení
ELE:
-
Stabilizovaný zdroj +5V
MCU: 8051:
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
PICAXE
-
Blik
-
DICE
-
2x IN, 2 x OUT
TinkerCAD
Fritzing
Modifikace programu s 8051
-
Křižovatka AUC
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
loop:
mov P0,#01010011 ;modifikovat dle LED
mov P2,#11001100 ;modifikovat dle LED
acall delay
.
.
.
sjmp loop
delay: mov R0,#255d ;podprogram zpoždění
skok2: mov R1,#5d
skok1: mov R2,#5d
skok: djnz R2,skok
djnz R1,skok1
djnz R0,skok2
ret ;návrat z podprogramu
end
Objednávka součástek
- Prodejci součástek:
- GME Doporučujeme tuto společnost s prodejnami v Praze, Brně, Ostravě, Plzni a zásilkovým prodejem.
- TME zásilkový prodej.
- SOS Electronic zásilkový prodej.
- GES Electronic Společnost s prodejnami a zásilkovým prodejem.
- Farnell zastoupení
Popis zapojení a funkce uni desky VYV50
Ovládání 7segmentovky s PICAXE
-
PICAXE18 + 7segment
-
PICAXE20 + 2x7segment
-
PICAXE20 + 7segment
-
PIC85 2 digit Up/Down Counter
Ovládání 7segmentovky s ATmega328 na desce Arduino
Assembly via Arduino
How to Flash or Program Arduino from Atmel Studio?
https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/
Send to Arduino UNO
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM3 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
Ovládání motorů
rjhcoding
Blink in C
https://wokwi.com/projects/354469641572834305
//#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
_SFR_IO8(0x0A) = 0xFF; // #define DDRD _SFR_IO8(0x0A)
// DDRB = 0xFF;
_SFR_IO8(0x0B) = 0x00; // PORTD= 0x00;
while(1){
PORTD |= (1 << PD0);
PORTD |= (1 << PD2) | (1 << PD1);
PORTD ^= (1 << PD3);
PORTD |= (1 << PD5) & ~(1 << PD4);
_delay_ms(1000);
PORTD &= ~(1 << PD0);
PORTD &= ~(1 << PD2) & ~(1 << PD1);
PORTD ^= (1 << PD5) ^ (1 << PD4);
_delay_ms(1000);
}
return 0;
}
Blink with Timer
https://wokwi.com/projects/354046396997507073
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://wokwi.com/projects/354046396997507073
;funkční
#define __SFR_OFFSET 0x20
#include "avr/io.h"
.global main
main: rcall setup // zavolání funkce setup
loop:
COM R17 ; Complement R17 register
STS PORTD, R17 ; Toggle the LED output
;sbi PORTB,5 zde nefunguje
rcall delay
rjmp loop
delay:
LDI R16, 0xC2
STS TCNT1H, R16 ; Writing 0xC2 into TCNT1H (8-bit)
LDI R16, 0xF7
STS TCNT1L, R16 ; Writing 0xF7 into TCNT1H (8-bit)
LDI R16, 0x05
STS TCCR1B, R16 ; Writing 0x05 into TCCR1B
L:LDS R0, TIFR1 ; Load the value of TIFR1 into R0
SBRS R0, 0 ; Skip the next statement if overflow has occured.
RJMP L ; Loop until overflow occurs.
LDI R16, 0x00
STS TCCR1B, R16 ; Stop the Timer/Counter1
LDI R16, 0x01
STS TIFR1, R16 ; Clear the overflow flag by writing 1 to it
ret
setup:
LDI R16, 0x01 ; Setting 1st bit of PORTB as output
STS DDRD, R16
LDI R17, 0x55
STS PORTD, R17 ; Writing 0 to PORTB
LDI R16, 0x00
STS TCCR1A, R16 ; Setting all bits of TCCR1A as 0
ret
|
//https://wokwi.com/projects/354556802672660481
//nedokončená transformace
#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
DDRB = 0xFF; // #define DDRD _SFR_IO8(0x0A)
PORTD= 0x00;
while(1){
PORTD ^= (1 << PD3);
delay();
}
return 0;
}
int delay(){
_delay_ms(1000); //toto poté odstavit
TCNT1H = 0xC2;
TCNT1L = 0xF7;
TCCR1B = 0x05;
/* následující je řeba nahradit
L:LDS R0, TIFR1
SBRS R0, 0
RJMP L
*/
TCCR1B = 0x00;
TIFR1 = 0x01;
}
|
Interrupts and 16-bit Timer/Counter 1: ATmega328P Timing Subsystems
https://www.arxterra.com/9-atmega328p-timers/
Delay 250 ms (neověřeno):
Delay:
push r15
in r15, SREG
push r16
wait:
sbis TIFR1, TOV1
rjmp wait
sbi TIFR1, TOV1 // clear flag bit by writing a one (1)
ldi r16,0x0B // load value high byte 0x0B
sts TCNT1H,r16
ldi r16,0xDC // load value low byte 0xDC
sts TCNT1L,r16
pop r16
out SREG, r15
pop r15
ret
|
void T1Delay()
{
while (!(TIFR & (1< TIFR = 1<
TCNT1H = 0x0B;
TCNT1L = 0xDC;
}
|
== Archiv ==
Témata na cvičení do roku 2016
ELE:
-
Stabilizovaný zdroj +5V
MIT:
Bonus:
-
Robot 2WD (arduino)
-
Tank DO (arduino)
-
Car DO (arduino)
Literatura
Otázky k opakování do roku 2016
TP do roku 2016 | |
|
Otázky k opakování do roku 2016
HW
- Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
- Otestuje AKO s časovačem 555
- Popište funkci operačního zesilovače
- Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové)
- Navrhněte připojení 7segmentovky k MCU
SW
- Napište program pro blikání jedné (a více) LED
- Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU
- Napište program pro test funkčnosti čidla světla
- Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový)
- Popište postup vývoje mikroprocesorové aplikace