Jump to content

Написать простенькую программу формирующую на выходе определенный импульс


Recommended Posts

Реализовать простую программу для микроконтроллера ATiny2313a которая на выходе формирует импульс 9600ГЦ. (То есть с использованием таймеров, прерываний). желательно на ассемблере, но можно и на Си.

 

Link to comment
Share on other sites

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Заманчивое предложение

1 час назад, vyachic007 сказал:

То есть с использованием таймеров, прерываний

возможно вполне достаточно ШИМ (нужно посчитать).

Link to comment
Share on other sites

Крутить гайку. Варить уголок. Варить холодец. Красить забор. Полоть грядку. Инфинитивов накидать можно много. О, накидать инфинитивов. Понаписать причастных оборотов. Прыгнуть на два метра вверх и на четыре в длину. Поймать воробья и скормить ему тюльпан.

Что за бред порой пишут люди...

Link to comment
Share on other sites

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 часа назад, vyachic007 сказал:

Реализовать простую программу

Так что? Помогите реализовать, нужно за меня реализовать, подскажите как реализовать??
"Барыня лягли и просють..."
Вас что в школе, дома, на улице никто не учил диалог вести. 

Edited by korsaj
Link to comment
Share on other sites

10 часов назад, korsaj сказал:

в школе, дома, на улице никто не учил диалог вести. 

Это телефонный СМС-очный диалог, короткий как выстрел. Не предназначен для передачи информации, но так любим поколением, рожденным с телефоном в руках.:)

Link to comment
Share on other sites

Да походу многократный скорострел, кругом сообщение понатыкал (включая гпт чат, бард) и теперь спит в предвкушении подачи на блюдечки.

11 часов назад, vyachic007 сказал:

если что

 

Link to comment
Share on other sites

@vyachic007 что значит импульс 9600гц? В герцах измеряется частота, а длина импульса измеряется в секундах (миллисекундах, микросекундах). Вам нужен единичный импульс или частота? Какие условия по которым генерируется импульс или частота, нажатие кнопки, через определённое время или ещё какие-то?

Link to comment
Share on other sites

18 часов назад, vyachic007 сказал:

для микроконтроллера ATiny2313a которая на выходе формирует импульс 9600ГЦ. (То есть с использованием таймеров, прерываний).

Pulse_9600Hz.hex

Импульсы на выводе PD6. МК тактируется на частоте 1 МГц от внутреннего генератора, потому точность ещё та... при использовании кварца результат улучшится...  

Link to comment
Share on other sites

2 часа назад, Огонёк сказал:

это же в два раза длиннее программа будет.

А вот и нет.

3 часа назад, Огонёк сказал:
10 сформировать на выходе импульс 9600ГЦ с помощью таймера
20 GOTO 10

:)

 

Link to comment
Share on other sites

Ответ ИИ

Цитата

 

Monica
Понял, вот пример простой программы на ассемблере для ATtiny2313a, которая генерирует импульс с частотой 9600 Гц:

ini
Копировать
.include "tn2313def.inc"

.org 0x00
    rjmp RESET        ; Reset Handler

.org OC1Aaddr
TIMER1_COMPA_vect:
    ; Код прерывания
    ldi r16, 1        ; Установка значения выходного порта
    out PORTB, r16     ; Вывод импульса на порт
    reti              ; Возврат из прерывания

RESET:
    ldi r16, low(RAMEND)  ; Инициализация стека
    out SPL, r16
    ldi r16, high(RAMEND)
    out SPH, r16

    ; Настройка таймера 1
    ldi r16, 0b00000101  ; Делитель частоты = 1024
    out TCCR1B, r16
    ldi r16, (1<<COM1A0) ; Установка генерации выхода на OC1A
    out TCCR1A, r16
    ldi r16, (1<<OCIE1A) ; Разрешение прерывания по совпадению A
    out TIMSK, r16
    ldi r16, low(F_CPU / 1024 / 9600) ; Загрузка счетчика
    out OCR1AL, r16
    ldi r16, high(F_CPU / 1024 / 9600)
    out OCR1AH, r16

MAIN_LOOP:
    rjmp MAIN_LOOP     ; Бесконечный цикл
Здесь мы использовали таймер 1 и прерывание по совпадению. На каждое срабатывание прерывания мы меняем состояние выходного порта, тем самым формируя импульс с частотой 9600 Гц.

Обратите внимание, что для определения правильного значения регистра OCR1A нам необходимо знать значение частоты микроконтроллера (F_CPU), в данном примере предполагается, что F_CPU = 8 МГц.

Если вам удобнее использовать C, то вот пример кода на языке C:

c
Копировать
#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 8000000UL // Частота микроконтроллера

int main(void) {
    // Настройка таймера 1
    TCCR1B = (1 << CS12) | (1 << CS10); // Делитель частоты = 1024
    TCCR1A = (1 << COM1A0); // Установка генерации выхода на OC1A
    OCR1A = F_CPU / 1024 / 9600; // Загрузка счетчика
    TIMSK = (1 << OCIE1A); // Разрешение прерывания по совпадению A

    // Разрешение прерываний
    sei();

    while (1) {
        // Бесконечный цикл
    }
}

// Обработчик прерывания по совпадению таймера 1
ISR(TIMER1_COMPA_vect) {
    PORTB ^= (1 << PB0); // Изменение состояния порта PB0
}
Данная программа на C делает то же самое, что и предыдущая версия на ассемблере. Основные отличия - использование библиотек AVR и обработчика прерываний с помощью ISR.

 

 

Link to comment
Share on other sites

1 час назад, Boris U сказал:

ldi r16, 1        ; Установка значения выходного порта
    out PORTB, r16     ; Вывод импульса на порт

Верх полета мысли интеллекта (бывает не только у ИИ но и у ПИ).

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...