DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Цифровий осцилограф DSO138: лістинг програми

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
ООП
Факультет:
Факультет інформатики та обчислювальної техніки
Кафедра:
Кафедра обчислювальної техніки

Інформація про роботу

Рік:
2016
Тип роботи:
Дипломний проект
Предмет:
Комп’ютерна електроніка
Група:
К
Коротко про документ

Про що ця робота

Документ містить лістинг програми для цифрового осцилографа на базі мікроконтролера STM32. Наведено функції ініціалізації периферії, дисплея та обробки подій.

У роботі розглядаються

  • Мікроконтролери STM32
  • Цифровий осцилограф
  • Програмування на C
  • Ініціалізація периферії
  • Обробка переривань
  • Робота з дисплеєм

Зміст і розділи

  1. Підключення бібліотек
  2. Ініціалізація даних та системних таймерів
  3. Налаштування дисплею та інтерфейсу
Для кого:Студенти технічних спеціальностей, розробники вбудованих систем та мікроконтролерів.
Викладачі:Петренко В. М.

Ключові поняття

STM32осцилографініціалізаціядисплейперериваннялістингпрограмасканування

Частина тексту файла (без зображень, графіків і формул):

Додаток А Лістинг програми //Підключення бібліотек #include "stm32f10x.h" #include "stm32f10x_conf.h" #include "Common.h" #include "Screen.h" #include "Command.h" #include "Eeprom.h" #include "libdso138.h" // Ініціалізація даних int main (void) { U16 tmp1, tmp2; Clock_Init(); Port_Init(); // Перевірка на наявність тестуючого сигналу tmp1 = (PB_Port & PB_Bits) | ~PB_Bits; if(!BitTest(tmp1, 0x8000)) { // Початок тестування TestMode(); } FLASH_Unlock(); EE_Init(); TFT_Init_Ili9341(); USART1_Init(); uputs((U8 *)"Uart1 Ok\n\r", USART1); SysTick_Init(); TIM3_Init(); TIM4_Init(); ADC2_Init(); AppInit(); tmp1 = clBlack; // Висвітлення даних про осцилограф на екран PutsGenic(24, 120, (U8 *)"FW: 113-13801-037", clWhite, tmp1, &ASC8X16); PutsGenic(24, 140, (U8 *)LibVersion, clWhite, tmp1, &ASC8X16); PutsGenic(24, 180, (U8 *)"Booting...", clWhite, tmp1, &ASC8X16); LedBlink(); NVIC_Configuration(); Flags = 0; // Налаштування дисплею while(1) { DsoDisplay(); tmp1 = GetDsoStatus(); if(BitTest(tmp1, DSO_NormalDisplay)) { } // Встановлення часу захоплення сигналу if(GTimeout) { GTimeout = 0; StartCapture(); } if(BitTest(Keypad.Flags, (1 << KF_DoKeyScan))) { BitClr(Keypad.Flags, (1 << KF_DoKeyScan)); // Виконання сканування елементів управління KeyScan(); } if(Keypad.KeyCode) { // Код програми під кожен елемент управління KeyProc(); Keypad.KeyCode = 0; } if(GTimer == 0) { if(BitTest(tmp1, DSO_CaptureDone)) { UpdateDisp(Disp_Trace); tmp2 = GetTimebase(); if(tmp2 <= TB_1ms) { // Почати наступне зняття сигналу StartCapture(); } else { // Швидкість захоплення сигналу GTimer = 40; } } } if(BitTest(tmp1, DSO_Rolling)) { Rolling(); } } }
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!