Показано с 1 по 4 из 4

Тема: Avr Шим Синусойда.

  1. #1
    Новичок
    Автор темы
    Аватар для astrgan
    Регистрация
    23.07.2012
    Сообщений
    24

    По умолчанию Avr Шим Синусойда.

    Попробовал написать программу для генерации синусоидального напряжения.

    .include "m128def.inc"

    .def index_1 = R8
    .def index_2 = R9
    .def index_3 = R10


    RJMP VECT_END

    ;***** ВЕКТАРА ПРЕРЫВАНИЯ ТАЙМЕРА-СЧЕТЧИКА Т3

    RJMP VECT_END
    .ORG OC3Aaddr ;Вектор прерывания таймера T1 при совпадении (КАНАЛ А)
    RJMP SINOUTA
    .ORG OC3Baddr ;Вектор прерывания таймера T1 при совпадении (КАНАЛ B)
    RJMP SINOUTB
    .ORG OC3Caddr ;Вектор прерывания таймера T1 при совпадении (КАНАЛ C)
    RJMP SINOUTC

    VECT_END:

    ;***** ИНИЦИАЛИЗАЦИЯ СТЕКА

    LDI r19,HIGH(RamEnd)
    OUT SPH,r19
    LDI r19,LOW(RamEnd)
    OUT SPL,r19

    LDI R16,100
    MOV R14,R16
    CLR R11

    ;НАСТРОЙКА ПРЕРЫВАНИЯ

    LDI R18, 0b00000000
    STS TIMSK,R18
    LDI R25, (1<<OCIE3A) | (1<<OCIE3B) | (1<<OCIE3C)
    STS ETIMSK,R25
    SEI
    ;НАСТРОЙКА OCR

    CLR R15
    STS OCR3AH, R15 ;в регистр совпадений таймера T1
    LDI R16,135
    STS OCR3AL, R16 ;в регистр совпадений таймера T1
    INC R8

    STS OCR3BH, R15 ;в регистр совпадений таймера T1
    LDI R16,233
    STS OCR3BL, R16 ;в регистр совпадений таймера T1
    INC R9

    STS OCR3CH, R15 ;в регистр совпадений таймера T1
    LDI R16,14
    STS OCR3CL, R16 ;в регистр совпадений таймера T1
    INC R10




    ;TCCR НАСТРОИМ НА 8-БИТЫЙ БЫСТРЫЙ ШИМ ПРЕДЕЛИТЕЛЬ 8

    LDI R16,(1<<COM3A1) | (1<<COM3B1) | (1<<COM3C1) | (1<<WGM30)
    STS TCCR3A,R16

    LDI R17,(1<<CS31) | (1<<WGM32)
    STS TCCR3B,R17
    LOOP:
    RJMP LOOP

    SINOUTA:

    LDI ZL,LOW(MAS1*2)
    LDI ZH,HIGH(MAS1*2)

    ADD ZL,index_1

    ADC ZH,R11
    LPM
    INC index_1


    STS OCR3AH, R15
    STS OCR3AL, R0
    CP index_1, R14
    BREQ POWT1
    RETI
    POWT1:
    CLR index_1
    RETI
    SINOUTB:
    LDI ZL,LOW(MAS2*2)
    LDI ZH,HIGH(MAS2*2)

    ADD ZL,index_2

    ADC ZH,R11
    LPM
    INC index_2


    STS OCR3BH, R15
    STS OCR3BL, R0
    CP index_2, R14
    BREQ POWT1
    RETI
    POWT2:
    CLR index_2
    RETI
    SINOUTC:
    LDI ZL,LOW(MAS3*2)
    LDI ZH,HIGH(MAS3*2)

    ADD ZL,index_3

    ADC ZH,R11
    LPM
    INC index_3


    STS OCR3CH, R15
    STS OCR3CL, R0
    CP index_3,R14
    BREQ POWT3

    RETI
    POWT3:
    CLR index_3
    RETI


    MAS1:

    .DB 135, 143, 151, 159, 167, 174, 182, 189, 196, 202, 208, 214, 220, 225, 230, 235, 239, 242, 246, 248
    .DB 251, 252, 253, 254, 255, 254, 253, 252, 251, 248, 246, 242, 239, 235, 230, 225, 220, 214, 208, 202
    .DB 196, 189, 182, 174, 167, 159, 151, 143, 135, 127, 120, 112, 104, 96, 88, 81, 73, 66, 59, 53
    .DB 47, 41, 35, 30, 2, 1,1,1, 2, 3, 4, 7, 9, 13, 16, 20, 25, 30, 35, 41
    .DB 47, 53, 59, 66, 73, 81, 88, 96, 104, 112, 120, 128

    MAS2:

    .DB 233, 229, 224, 218, 212, 206, 200, 193, 186, 179, 172, 164, 157, 149, 141, 133, 125, 117,109, 101
    .DB 93, 86, 78, 71, 64, 57, 51, 45, 39, 33, 28, 23, 19, 15, 11, 8, 6, 4, 2, 1
    .DB 1, 1, 1, 2, 3, 5, 8, 10, 14, 18, 22, 26, 31, 37, 43, 49, 55, 62, 69, 76
    .DB 83, 91, 98, 106, 114, 122, 130, 138, 146, 154, 162, 169, 177, 184, 191, 198, 204, 227, 232, 236
    .DB 240, 244, 247, 249, 257, 253, 254, 254, 254, 254, 253, 252, 250, 247, 245, 241, 237

    MAS3:

    .DB 14, 10, 8, 5, 3, 2, 1, 1, 1, 1, 2, 4, 6, 8, 11, 15, 19, 23, 28, 33
    .DB 39, 45, 51, 57, 64, 71, 78, 86, 93, 101, 109, 117, 125, 133, 141, 149, 157, 164, 172, 179
    .DB 186, 193, 200, 206, 212, 218, 224, 229, 233, 237, 241, 245, 247, 250, 252, 253, 254, 254, 254, 254
    .DB 253, 251, 249, 247, 244, 240, 236, 232, 227, 222, 216, 216, 204, 198, 191, 184, 177, 169, 162, 154
    .DB 146, 138, 130, 122, 114, 106, 98, 91, 83, 73, 69, 62, 55, 49, 43, 37, 31, 26, 22, 18


    При симуляции в proteus какойто глюк: когда подключаю осциллограф к порту он перестает работать.
    Как же проверить получится синус или нет?
    Вложения Вложения
    • Тип файла: rar ШИМ.rar (20.9 Кб, Просмотров: 155)

  2. #2
    Новичок
    Автор темы
    Аватар для astrgan
    Регистрация
    23.07.2012
    Сообщений
    24

    По умолчанию Re: Avr Шим Синусойда.

    Разобрался.

  3. #3
    Завсегдатай Аватар для кот базилио
    Регистрация
    15.05.2008
    Адрес
    г. "Бабай" town. забытый Богом, где-то в дебрях южного Урала, между Уфой и Оренбургом.
    Возраст
    63
    Сообщений
    1,682

    По умолчанию Re: Avr Шим Синусойда.

    Счастливчик. А для меня сиё действие, тёмный и враждебный лес. Более, чем грубую корректировку ФП от ККМ на носителях типа 27с512 так и не постиг.
    Всё же микропроцессор в моей юности, это монстр из фантастического рассказа. Я помнится в 80х генерировал синус с ацп сделаном с реверсом на 155ид3 и матрицей из резисторов подпиленых в ручную.
    всё украли до нас.

  4. #4
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,135

    По умолчанию Re: Avr Шим Синусойда.

    Цитата Сообщение от кот базилио Посмотреть сообщение
    Всё же микропроцессор в моей юности, это монстр из фантастического рассказа
    Да ладно.

    Цитата Сообщение от кот базилио Посмотреть сообщение
    Я помнится в 80х генерировал синус с ацп сделаном с реверсом на 155ид3 и матрицей из резисторов подпиленых в ручную
    Только не ацп а цап
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •