New Lesson plans in markdown with provided template. Remove old text plans.
+++ /dev/null
---- Тема 1 ---
-
-Как ще протичат часовете по ПВМКС
-Как ще се оформят оценките
-Какви учебни материали ще се използват
-
-Какво е ВМКС
-Документация на ATMega328P (https://gitlab.com/tues-embedded/vmks/-/blob/master/Datasheets/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf)
-Преговор на управление на цифрови входове и изходи
-Как работят портовете на микроконтролера
-Разглеждане на вътрешна схема на извод от порт (страница 59, фигура 13-2 от документацията на микроконтролера)
\ No newline at end of file
+++ /dev/null
---- Тема 2 ---
-
-Какво е аналогов/цифров сигнал
-(https://www.embedded.com/introduction-to-pulse-width-modulation/)
-Какво е непрекъснат/прекъснат(дискретен) сигнал
-Теорема на Найкуист
-(https://www.youtube.com/watch?v=HicZcgdGxZY)
-
-Резисторен делител/суматор на напрежение
-Сравнител
-
-DAC
- R-2R (https://www.youtube.com/watch?v=Pc1aFloxSMw)
- Binary weighted (https://www.youtube.com/watch?v=PoOm_G4s1dE)
-
-Observed vs Input Frequency
-Aliasing and Oversampling
-(https://www.youtube.com/watch?v=91PKZllbgds&list=PLbqhA-NKGP6B6V_AiS-jbvSzdd7nbwwCw&index=4)
-
-ADC
- Parallel (https://www.youtube.com/watch?v=NASkjo7s8f4)
- Counter (https://www.youtube.com/watch?v=4zwtA2pG6Vc)
- Successive Approximation (https://www.youtube.com/watch?v=h0CGtr4SC9s)
- Pipeline (https://www.youtube.com/watch?v=5nNKRLQ0WCE)
- Sigma Delta[още се нарича Charge Balancing ADC] (https://www.youtube.com/watch?v=NrkFd7h6R2Y)
-
-За който му е интересно може да разгледа тези линкове има добри обяснения на нещата
-и има допълнителни неща за който му е интересно да научи повече за обработката на сигнали:
-
-ADC серия:
- https://www.youtube.com/watch?v=Sh4pI_kBNkk ==> основни параметри и няколко вида АЦП
- https://www.youtube.com/watch?v=AnZh-6Lp7wc ==> dual-slope и delta-sigma
- https://www.youtube.com/watch?v=x7oPVWLD59Y ==> sigma-delta и намаляване на шума
-Tracking ADC (https://www.youtube.com/watch?v=MMQwa416Cmo)
-Slope ADC - Single/Dual (https://www.youtube.com/watch?v=2gF_nfaBV_0)
-Multi-Slope ADC (в интернет има информация за него но няма читаво видео по темата)
-Грешки в АЦП => https://www.youtube.com/watch?v=G7jkCyGipc8
-Нелинейност в АЦП => https://www.youtube.com/watch?v=TTO35V3XgiU
-Dithering / Noise Shaping (7,8,9) и обща информация => https://www.youtube.com/playlist?list=PLbqhA-NKGP6B6V_AiS-jbvSzdd7nbwwCw
-Тук има много неща който може да са ви полезни => https://www.youtube.com/c/ALLABOUTELECTRONICS/videos
\ No newline at end of file
+++ /dev/null
---- Тема 6 ---
-
-Преговор
- Ядро
- Регистри на ядрото
- Задача мигащ светодиод с регистри - GitLab Repo -> Examples/Register_Blink
- Прекъсвания теория
- Външни прекъсвания (https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/)
- Задача бутон да сменя състоянието на светодиод - GitLab Repo -> Examples/
- Реално приложение (веднага сменя състоянието на светодиода но извежда съобщение когато успее) -> External_interrupt
- Прост пример за toggle на светодиод с бутон -> EXTI_Demo
- Пример за toggle на светодиод с бутон (като EXTI_Demo но само с регистри) -> EXTI0_Register_Demo
-RTuinoOS пример за context switching (https://github.com/PeterVranken/RTuinOS)
-FreeRTOS пример за реална програма (мигащ светодиод и четене на потенциометър)
-Таймери
- Какво представляват
- Как работят
-
-Допълнително:
-Как се използва ШИМ сигнал с analogWrite -> https://www.arduino.cc/en/Tutorial/Foundations/PWM
-Разликата между проене нагоре/надолу/двете -> https://www.mathworks.com/help/physmod/sps/ref/pwmgenerator.html
-Тук има документация за delay функциите(и не само) който са от самия пакет библиотеки на компилатора (avr-gcc)
- -> https://www.nongnu.org/avr-libc/user-manual/group__util__delay.html
-
-
-Всяка ардуино програма има:
-
-//#include "Arduino.h"
-
-/*
-void main()
-{
- init();
- setup();
-
- while(1)
- {
- loop();
- checkUART();
- }
-}
-*/
-
-Тези файлове може да намерите и разгледате в GitLab в папка Other Useful Files
-или направо от файловете на вашия компютър (пътищата са примерни за Windows x64 за Linux вижте в интернет къде са):
-..\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino
-..\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino
-
-
-/*
-void _delay_ms(uint16_t i)
-{
- i *= 4000;
- for(; i > 0 ; i++){}
-}
-*/
-
-Това което ви показах в час (горното) беше опростен пример за delay() функцията показващ как тя работи,
-а истинските функции за изчакване може да намерите във файлове delay.h и delay_basic.h
-(разликата е че са частично на асемблер и има сметки за броя цикли така че да може да подавате променливи)
-в директория на Arduino IDE-то (пътищата са примерни за Windows x64 за Linux вижте в интернет къде са):
-..\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\util
-..\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\util
-..\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\util
\ No newline at end of file
+++ /dev/null
-# --- Тема 7 ---
-
-## План на часа
-- Напомняне за примерите в GitLab и плановете от часовете който качвам там
-- Таймери
- * Как работи таймера (разглеждане на блоковата схема на Timer/Counter 1)
- * Режими на работа (За какво се използват)
- * Настройка (избор на режим, задаване на режима чрез запис в регистрите и изчисляване на параметри)
- * Примерни задачи
- 1. мигащ светодиод - Mode 14 Fast PWM 2Hz 25%
- 2. мигащ светодиод - Mode 14 Fast PWM 2Hz 80%
- 3. мигащ светодиод - Mode 14 Fast PWM 10kHz 25%
-
-С 12Б клас също направихме демонстрация на получения 10kHz сигнал на осцилоскоп и логически анализатор и сравнихме заданието с получените параметри на сигнала. 12А може да го видите в последните 10-15мин на записа от часа с 12Б клас на 29.10.2021.
-
------
-
-### Допълнително:
-
-Тук е обяснен как работи CTC режима който ние няма да използваме, но голяма част от обясненията и най-вече примерния код с който се подкарва таймера са много близки до това което правим в час и ако го разгледате няма да навреди:
-https://maxembedded.com/2011/07/avr-timers-ctc-mode/
-Тук има малко повече информация за Prescaler-а ако някой го интересува по-подробно:
-https://onlinedocs.microchip.com/pr/GUID-93DE33AC-A8E1-4DD9-BDA3-C76C7CB80969-en-US-2/index.html?GUID-669CCBF6-D4FD-4E1D-AF92-62E9914559AA
-
-Това са онлайн калкулатори за изчисляване на стойностите в регистрите и други параметри:
-(https://eleccelerator.com/avr-timer-calculator/) (това е калкулатора който исках да ви покажа)
-https://www.easycalculation.com/engineering/electrical/avr-timer-calculator.php
-https://weirdloop.com/2019/07/11/avr-timer-calculator/
-https://www.arduinoslovakia.eu/application/timer-calculator
-https://timer-interrupt-calculator.simsso.de/
-https://sayanseth.github.io/AVR-Clock-Calculator/
-https://www.mikroe.com/timer-calculator
-(на последния линк долу има и разни други интересни програмки,
-като например за рисуване на символи за custom LCD fonts)
\ No newline at end of file
+++ /dev/null
-#--- Тема 7 ---
-
-## План на часа
-Напомняне за примерите в GitLab и плановете от часовете който качвам там
-Таймери
- Как работи таймера (разглеждане на блоковата схема на Timer/Counter 1)
- Режими на работа (За какво се използват)
- Настройка (избор на режим, задаване на режима чрез запис в регистрите и изчисляване на параметри)
- Примерни задачи
- - мигащ светодиод - Mode 14 Fast PWM 2Hz 25%
- - мигащ светодиод - Mode 14 Fast PWM 2Hz 80%
- - мигащ светодиод - Mode 14 Fast PWM 10kHz 25%
-
-С 12Б клас също(12А може да го видите в последните 10-15мин на записа от часа с 12Б клас на 29.10.2021):
-Демонстрация на получения 10kHz сигнал на осцилоскоп и логически анализатор
-Сравняване на заданието с получените параметри на сигнала
-
-### Допълнително:
-Тук е обяснен как работи CTC режима който ние няма да използваме, но голяма част от обясненията и най-вече примерния код с който се подкарва таймера са много близки до това което правим в час и ако го разгледате няма да навреди:
-https://maxembedded.com/2011/07/avr-timers-ctc-mode/
-https://onlinedocs.microchip.com/pr/GUID-93DE33AC-A8E1-4DD9-BDA3-C76C7CB80969-en-US-2/index.html?GUID-669CCBF6-D4FD-4E1D-AF92-62E9914559AA
-(тук пише как работи Prescaler-а ако някой го интересува по-подробно)
-
-Timer Calculators Online:
-https://eleccelerator.com/avr-timer-calculator/ (това е калкулатора който исках да ви покажа)
-https://www.easycalculation.com/engineering/electrical/avr-timer-calculator.php
-https://weirdloop.com/2019/07/11/avr-timer-calculator/
-https://www.arduinoslovakia.eu/application/timer-calculator
-https://timer-interrupt-calculator.simsso.de/
-https://sayanseth.github.io/AVR-Clock-Calculator/
-https://www.mikroe.com/timer-calculator
-(на последния линк долу има и разни други интересни програмки,
-като например за рисуване на символи за custom LCD fonts)
\ No newline at end of file
--- /dev/null
+# --- Тема 1 ---
+
+## План на часа
+- Как ще протичат часовете по ПВМКС
+- Как ще се оформят оценките
+- Какви учебни материали ще се използват
+- Какво е ВМКС
+- [Документация на ATMega328P](https://gitlab.com/tues-embedded/vmks/-/blob/master/Datasheets/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf)
+- Преговор на управление на цифрови входове и изходи
+- Как работят портовете на микроконтролера
+- Разглеждане на вътрешна схема на извод от порт (страница 59, фигура 13-2 от документацията на микроконтролера)
+
+-----
+
+### Допълнително:
+
+[ВМКС Хранилище в GitLab](https://gitlab.com/tues-embedded/vmks)
\ No newline at end of file
--- /dev/null
+# --- Тема 2 ---
+
+## План на часа
+- [Какво е аналогов/цифров сигнал](https://www.embedded.com/introduction-to-pulse-width-modulation/)
+- Какво е непрекъснат/прекъснат(дискретен) сигнал
+- [Теорема на Найкуист](https://www.youtube.com/watch?v=HicZcgdGxZY)
+
+- Резисторен делител/суматор на напрежение
+- Сравнител
+- Цифрово-Аналогов Преобразувател ЦАП (Digital to Analog Converter DAC)
+ * [R-2R](https://www.youtube.com/watch?v=Pc1aFloxSMw)
+ * [Binary weighted](https://www.youtube.com/watch?v=PoOm_G4s1dE)
+
+- Observed vs Input Frequency
+- [Aliasing and Oversampling](https://www.youtube.com/watch?v=91PKZllbgds&list=PLbqhA-NKGP6B6V_AiS-jbvSzdd7nbwwCw&index=4)
+
+- Аналогово-Цифров Преобразувател АЦП (Analog to Digital Converter ADC)
+ * [Parallel](https://www.youtube.com/watch?v=NASkjo7s8f4)
+ * [Counter](https://www.youtube.com/watch?v=4zwtA2pG6Vc)
+ * [Successive Approximation](https://www.youtube.com/watch?v=h0CGtr4SC9s)
+ * [Pipeline](https://www.youtube.com/watch?v=5nNKRLQ0WCE)
+ * [Sigma Delta(още се нарича Charge Balancing ADC)](https://www.youtube.com/watch?v=NrkFd7h6R2Y)
+
+
+Бележки
+
+-----
+
+### Допълнително:
+За който му е интересно може да разгледа тези линкове има добри обяснения на нещата и има допълнителни неща за който му е интересно да научи повече за обработката на сигнали:
+
+ADC серия:
+ https://www.youtube.com/watch?v=Sh4pI_kBNkk ==> основни параметри и няколко вида АЦП
+ https://www.youtube.com/watch?v=AnZh-6Lp7wc ==> dual-slope и delta-sigma
+ https://www.youtube.com/watch?v=x7oPVWLD59Y ==> sigma-delta и намаляване на шума
+[Tracking ADC](https://www.youtube.com/watch?v=MMQwa416Cmo)
+[Slope ADC - Single/Dual](https://www.youtube.com/watch?v=2gF_nfaBV_0)
+[Multi-Slope ADC](в интернет има информация за него но няма читаво видео по темата)
+[Грешки в АЦП](https://www.youtube.com/watch?v=G7jkCyGipc8)
+[Нелинейност в АЦП](https://www.youtube.com/watch?v=TTO35V3XgiU)
+Dithering / Noise Shaping (7,8,9) и обща информация => https://www.youtube.com/playlist?list=PLbqhA-NKGP6B6V_AiS-jbvSzdd7nbwwCw
+Тук има много неща който може да са ви полезни => https://www.youtube.com/c/ALLABOUTELECTRONICS/videos
\ No newline at end of file
--- /dev/null
+# --- Тема 6 ---
+
+## План на часа
+- Преговор
+ * Ядро
+ * Регистри на ядрото
+ * Задача мигащ светодиод с регистри - GitLab Repo -> Examples/Register_Blink
+ * Прекъсвания теория
+ * [Външни прекъсвания](https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/)
+ * Задача бутон да сменя състоянието на светодиод - GitLab Repo -> Examples/
+ - Реално приложение (веднага сменя състоянието на светодиода но извежда съобщение когато успее) -> External_interrupt
+ - Прост пример за toggle на светодиод с бутон -> EXTI_Demo
+ - Пример за toggle на светодиод с бутон (като EXTI_Demo но само с регистри) -> EXTI0_Register_Demo
+- RTuinoOS пример за context switching (https://github.com/PeterVranken/RTuinOS)
+- FreeRTOS пример за реална програма (мигащ светодиод и четене на потенциометър)
+- Таймери
+ * Какво представляват
+ * Как работят
+
+Бележки
+
+-----
+
+### Допълнително:
+Как се използва ШИМ сигнал с analogWrite -> https://www.arduino.cc/en/Tutorial/Foundations/PWM
+Разликата между проене нагоре/надолу/двете -> https://www.mathworks.com/help/physmod/sps/ref/pwmgenerator.html
+Тук има документация за delay функциите(и не само) който са от самия пакет библиотеки на компилатора (avr-gcc)
+ -> https://www.nongnu.org/avr-libc/user-manual/group__util__delay.html
+
+
+Всяка ардуино програма има `main.c` файл в който опростено изглежда така:
+```C++
+#include "Arduino.h"
+
+
+void main()
+{
+ init();
+ setup();
+
+ while(1)
+ {
+ loop();
+ checkUART();
+ }
+}
+```
+
+Тези файлове може да намерите и разгледате в GitLab в папка Other Useful Files
+или направо от файловете на вашия компютър (пътищата са примерни за Windows x64 за Linux вижте в интернет къде са):
+`..\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino`
+`..\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino`
+
+
+```C++
+void _delay_ms(uint16_t i)
+{
+ i *= 4000;
+ for(; i > 0 ; i++){}
+}
+```
+
+Това което ви показах в час (горното) беше опростен пример за `delay()` функцията показващ как тя работи, а истинските функции за изчакване може да намерите във файлове `delay.h` и `delay_basic.h` в директория на Arduino IDE-то (пътищата са примерни за Windows x64, за Linux вижте в интернет къде са):
+`..\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\util`
+`..\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\util`
+`..\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\util`
+Разликата е че са частично на асемблер и има сметки за броя цикли, така че да може да подавате променливи.
\ No newline at end of file
--- /dev/null
+# --- Тема 7 ---
+
+## План на часа
+- Напомняне за примерите в GitLab и плановете от часовете който качвам там
+- Таймери
+ * Как работи таймера (разглеждане на блоковата схема на Timer/Counter 1)
+ * Режими на работа (За какво се използват)
+ * Настройка (избор на режим, задаване на режима чрез запис в регистрите и изчисляване на параметри)
+ * Примерни задачи
+ 1. мигащ светодиод - Mode 14 Fast PWM 2Hz 25%
+ 2. мигащ светодиод - Mode 14 Fast PWM 2Hz 80%
+ 3. мигащ светодиод - Mode 14 Fast PWM 10kHz 25%
+
+С 12Б клас също направихме демонстрация на получения 10kHz сигнал на осцилоскоп и логически анализатор и сравнихме заданието с получените параметри на сигнала. 12А може да го видите в последните 10-15мин на записа от часа с 12Б клас на 29.10.2021.
+
+-----
+
+### Допълнително:
+
+Тук е обяснен как работи CTC режима който ние няма да използваме, но голяма част от обясненията и най-вече примерния код с който се подкарва таймера са много близки до това което правим в час и ако го разгледате няма да навреди:
+https://maxembedded.com/2011/07/avr-timers-ctc-mode/
+Тук има малко повече информация за Prescaler-а ако някой го интересува по-подробно:
+https://onlinedocs.microchip.com/pr/GUID-93DE33AC-A8E1-4DD9-BDA3-C76C7CB80969-en-US-2/index.html?GUID-669CCBF6-D4FD-4E1D-AF92-62E9914559AA
+
+Това са онлайн калкулатори за изчисляване на стойностите в регистрите и други параметри:
+(https://eleccelerator.com/avr-timer-calculator/) (това е калкулатора който исках да ви покажа)
+https://www.easycalculation.com/engineering/electrical/avr-timer-calculator.php
+https://weirdloop.com/2019/07/11/avr-timer-calculator/
+https://www.arduinoslovakia.eu/application/timer-calculator
+https://timer-interrupt-calculator.simsso.de/
+https://sayanseth.github.io/AVR-Clock-Calculator/
+https://www.mikroe.com/timer-calculator
+(на последния линк долу има и разни други интересни програмки,
+като например за рисуване на символи за custom LCD fonts)
\ No newline at end of file
--- /dev/null
+# --- Тема X ---
+
+## План на часа
+- Преговор...
+- Тема 2
+ * подтеми
+ * Примерни задачи
+ 1. задача
+
+Бележки
+
+-----
+
+### Допълнително:
+
+[Някакъв линк](gitlab.com)
+
+директория `\Program Files (x86)\...`
+
+```C++
+ // Some code
+```
+