Мазмұны:

Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару: 4 қадам
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару: 4 қадам

Бейне: Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару: 4 қадам

Бейне: Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару: 4 қадам
Бейне: Урок №3. Широтно-импульсная модуляция. BeyondRobotics 2024, Қараша
Anonim
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару
Atmega128A пропорционалды қозғалтқыш - ATMEL ICE AVR таймері UART PWM басқару

Бұл нұсқаулықта мен сізге қалай істеу керектігін түсіндіремін

  • PWM бар тұрақты ток қозғалтқышты басқару
  • UART арқылы хабарласыңыз
  • тұтқаның таймері үзіледі

Алдымен біз Aliexpress -те 4 доллар тұратын AVR Core жүйесін әзірлеу тақтасын қолданамыз. Даму тақтасының сілтемесі мына жерде. Біз сондай -ақ Atmel ICE Debugger мен Atmel Studio бағдарламалық жасақтамасын бағдарламалау және жөндеу үшін қолданамыз.

1 -қадам: Деректер парағына және бастапқы кодқа терең ену - Сағат жылдамдығы

Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы
Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы
Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы
Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы
Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы
Деректер кестесіне терең ену және бастапқы код - Сағат жылдамдығы

1. оқта біз кристалды жиілікті анықтаймыз, оны біз даму тақтасынан көре аламыз

2 -қадам: UART регистрлерін орнату

UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату
UART регистрлерін орнату

UART -пен байланысу үшін USART Baud Rate Registrs - UBRRnL және UBRRnH дұрыс орнату керек, оны өзіңіз есептей аласыз немесе дұрыс мәндерді алу үшін онлайн калькуляторды қолдана аласыз.

Интернеттегі калькулятор

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Осылайша MYUBBR мәні есептеледі, UCSR0B регистрінде біз RXEN0 (recv қосу) TXEN0 (жіберуді қосу) және RXCIE0 (үзіліс үшін RX) қосамыз. UCSR0C регистрінде біз 8 разрядты таңдайтын өлшемді таңдаймыз.

Біз RX үзіліс битін орнатқаннан кейін USART0_RX_vect үшін ISR функциясын қосуымыз керек

ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {буфер [bufferIndex] = rcvChar; bufferIndex ++; }}

Үзіліс кезінде сіз логикалық әрекеттерді жасамауыңыз керек. Функцияны тез арада қайтару керек.

3 -қадам: PWM параметрлері

PWM параметрлері
PWM параметрлері

InitPWM функциясында біз процессордың сағат өлшегішін, Таймерді/Есептегіш режимін Fast PWM ретінде орнатамыз және оның әрекетін COM биттерімен орнатамыз.

Сондай -ақ, біз тұрақты ток қозғалтқышын 66 -кестеде көрсетілген OC2 түйреуішіне жалғауымыз керек. Біздің деректер кестесінде шығыс режимін, жылдам PWM режимін салыстырыңыз, сонымен қатар OC2 түйреуішінің (OC2/OC1C) PB7 екенін көресіз.

4 -қадам: Нәтиже

Нәтиже
Нәтиже
Нәтиже
Нәтиже

Қосымшаға бастапқы кодты жүктеген кезде.

Тұрақты ток қозғалтқышының жылдамдығын орнату үшін UART-тан жаңа PWM мәнін (0-255) енгізуге болады (arduino сериялық порт терминалын пайдалануға болады).

Ұсынылған: