Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
ATmega AVR Скорость зажигания светодиодов Здравствуйте форумчани, заранее извиняюсь если такой вопрос был. Вообщем стояла задача сделать курсовой проект в котором будет клавиатура, МК и светодиоды. В качестве задания нужно было написать код который регулировал бы скорость загорания светодиодов при нажатии на кнопку клавиатуры. Для написания я использовал язык Си, и все вроде хорошо, но почему-то при нажатии на клавишу, скорость не... https://www.cyberforum.ru/ avr/ thread2146960.html ATmega AVR Радио на tea5767 и tiny13
Кто-нибудь может проверить прошивку для радио на tiny13? Хочется быть более уверенным, т.к. вывод RESET будет использоваться как порт и прошивать нужно только параллельным программатором с выпаиванием микры из платы.
ATmega AVR Создать клавиатуру 4*4 в Proteuse (Atmega8). На 4-розрядном семисегментном индикаторе сделать бегущую строку Нужно создать клавиатуру 4*4 в Proteuse (Atmega8). На 4-розрядном семисегментном индикаторе сделать бегущую строку- справа налево (если ничего не нажато). Если нажата кнопка с 1-го столбика - вывести её десятичный код, со 2-го - в шестнадцатеричной, с 3-го - вывести сегменты FC. Помогите, пожалуйста, со схемой и кодом на С. Ничего не смыслю. https://www.cyberforum.ru/ avr/ thread2146376.html ATmega AVR Atmega2560, конфликт UART и задержки (delay) В общем, есть STK600, нужно реализовать таймер обратного отсчета: по UART принимается строка вида HH:MM:SS, дальше идет обработка, валидация, отсчет (отправка в терминал по UART строки вида HH:MM:SS). Проблема в том, что, раз уж это таймер, то нужно отправлять эту строку раз в секунду, но использование _delay_ms() приводит к тому, что в терминал отправляется какой-то мусор, после чего цикл... https://www.cyberforum.ru/ avr/ thread2144472.html
ATmega AVR Ждущий Мультивибратор на Atmega103 1mc-20c
Подскажите, как запрограммировать ждущий мультивибратор на atmega103. Программировать напрямую на контроллере, в atmel studio. Добавлено через 3 минуты P.S. Гуглил, тонна иформации про аналоговые, но мало о цифровой схеме
ATmega AVR Косяк с подпрограммами (Bascom AVR) https://www.cyberforum.ru/ avr/ thread2140807.html
Есть идея сделать блоки для отдельных программ. Для этого решил попробовать написать программу-мигалку. Это код основной программы: '**************************************** $Regfile="m328pdef.dat" $Crystal=16000000 $baud = 9600
ATmega AVR ШИМ на atmega128, АЦП MCP3204 https://www.cyberforum.ru/ avr/ thread2126005.html
Всем привет! Помогите пожалуйста с программой. Есть цель разработать программу, генерирующую ШИМ-сигнал на ножке 𝑂𝐶1𝐴. Частота сигнала равна 1 кГц. Скважность сигнала определяется значением напряжения, поданного на 𝐶𝐻1 АЦП MCP3204: линейно изменяется от 0% (𝑈𝐶𝐻1 = 0 В) до 100% (𝑈𝐶𝐻1 = 4,096 В). Имеются две работающие программы. Одна генерирует...
ATmega AVR Atmega8 Кварцевый генератор
Здравствуйте, вот такая проблема с приемом данных по USORT на atmega8. Rfid reader присылает сигнал на микроконтроллер с числом символов в секунду (baud rate) 115200, и микроконтроллер воспринимает на частоте 8МГц этот сигнал с ошибкой 7.3 %. Для уменьшения ошибки нужна частота 11 МГц ( смотрел в CVAVR). Вопрос: Можно ли с помощью кварцевого внешнего генератора получить такую частоту?
ATmega AVR Настройка внешних прерываний по входу int0 https://www.cyberforum.ru/ avr/ thread2125381.html
Добрый день. Помогите, пожалуйста, разобраться с такой проблемой. Задача: написать программу, которая будет определять частоту и скважность сигнала, подаваемого на ножку int0 (PD0) МК Atmega128. Полученные значения выводить через USORT и HyperTerminal на монитор ПК. Сигнал прямоугольной формы, подаётся генератором сигналов. Моё решение: 1) Включаю таймер-счётчик1, настраиваю на режим CTC...
ATmega AVR Таймер на attiny2313 Приветствую всех. Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить задержку в 6 секунд? OCR1AH OCR1AL TCCR1B https://www.cyberforum.ru/ avr/ thread2124924.html
Конкурирование портов ATmega AVR
Доброго времени суток не могу понять как правильно сконфигурированный порты на вход и выход выставить на них лог уровни так чтобы они во время работы не мешали друг другу. В общем задача следующая имеем порта PORTС и PORTD. PC0-PC2 используются для управления катодами семи сегментных индикаторов и их необходимо настроить на постоянный выход и установить лог 1, PC3-PC5,PD2 подключён к строкам...
ATmega AVR Некорректное отображение символов в виртуальном терминале Proteus https://www.cyberforum.ru/ avr/ thread2122943.html
Если пытаюсь вывести какие либо символы на виртуальный терминал то вместо этих символов выводятся буквы "И". Что делать, мб где то нужно настроить кодировку и что то подобное ?????? Код, скрины конфигурации ЮСАРТА и вывода прилагаю Обычный хеловорлд: #include <mega8.h> #include <stdio.h> #include <delay.h>
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 8
0

Как сделать нулевой ШИМ сигнал на avr - ATmega AVR - Ответ 11899745

30.11.2017, 20:21. Показов 1025. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Написал программу, которая генерирует ШИМ в зависимости от напряжения, которое изменяется реостатом в диапазоне от 0 до 4В. Проблема в том, что реостат чисто физически не может выдавать ноль, т.к. всегда присутствуют малые токи. Из - за этого не могу на осциллографе получить чистый 0, а получаются пики. Типо этого ___|___|___|___
Пробовал приравнять значение H к нулю при достижении минимального значения напряжения, выключить порт при минимальном значении H(тогда вообще перестает работать). Помогите, пожалуйста, справиться с этой задачей.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#define F_CPU 10000000UL
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>
#include <util/delay.h>
#include "HD44780.h"
 
 
/* Инициализация переменных */
volatile uint32_t T = F_CPU/1000; // Период счёта ТС1 = тактовая частота / частота генерируемого сигнала (1000 Гц)
volatile uint32_t H = 0; // переменная для длительности импульса
volatile uint32_t p = 0;
 
//volatile uint16_t U = 0;
// Функция запуска преобразования АЦП и чтения результата
volatile unsigned int read_adc (unsigned char adc_input) {
    // Сбрасываем прошлый канал
    ADMUX &= ~((1 << MUX0) | (1 << MUX1) | (1 << MUX2) | (1 << MUX3) | (1 << MUX4));
    // И выбираем новый
    ADMUX |= adc_input;
    // Задержка на установление опорного напряжения
    _delay_us(10);
    // Запуск преобразования АЦП
    ADCSRA |= (1 << ADSC);
    // Ожидание окончания преобразования
    while ((ADCSRA & (1 << ADIF))==0);
    // Сброс флага прерывания
    ADCSRA |= (1 << ADIF);
    return ADC;
};
 
/* Обработчик прерываний */
ISR(TIMER1_CAPT_vect) {
        if (H < 0.350)
        { DDRB = 0x00;
        PORTB = 0x00;
        }
        else
        { DDRB = 0xff;
            
        }
        OCR1A = H;
 
}
 
int main(void)
{   HD44780Init();
    HD44780Clear();
    HD44780PortWCmd(0b00010100); //сдвиг курсора вправо
 
/* Настройка ножки OC1A (PB5) на вывод */
    DDRB |= (1 << 5);
    PORTB &= ~(1 << 5);
    
    /* Инициализация ТС1 */
    
    TCNT1 = 0;
    ICR1 = T;
    OCR1A = H;
    
    TCCR1A = (1 << COM1A1) | (1 << WGM11);              // Выбран режим Fast PWM (№14) с пределом счёта в ICR1   
    TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10); // с системным тактовым сигналом без предделителя
    TCCR1C = 0;
    
    TIMSK = (1 << TICIE1); // Разрешение прерывания по захвату состояния TCNT1 = ICR1
    
    sei(); // глобальное разрешение прерываний
    
    /* Инициализация модуля АЦП */
    // разрешение работы АЦП, предделитель тактовой частоты равен 128 
    ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); 
    // источник опорного сигнала -- AVCC, канал ввода - однополярный вход PF0 
    ADMUX = (1 << REFS0); 
    
    while(1)
    {
        HD44780PortWCmd(0x80); //HD44780Gotoxy(0,0)
        HD44780Clear();
        
    
        p = read_adc(PB5);
        H = (read_adc(PB5)*1.20)*T/1000;
        if (p<= 0.03) H=0;
 
 
//HD44780WNumXY(0, 0, H );
    _delay_ms(50);
    }
}
Добавлено через 31 минуту
...

Вернуться к обсуждению:
Как сделать нулевой ШИМ сигнал на avr ATmega AVR
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2017, 20:21
Готовые ответы и решения:

AVR ШИМ
Помогите пожалуйста организовать трехфазный ШИМ на AVR. У меня есть AT90PWM3B, как необходимо...

ШИМ-сигнал
Добрый день. Пытаюсь разобраться с данным типом сигнала. Почитав теорию, понял что один из...

ШИМ -> Аналоговый сигнал
Есть ШИМ сигнал 65кГц, который подается на затвор MOSFET-N ключа IRLML0060, на сток подается...

Цифровой сигнал в ШИМ
Доброго времени суток комрады. Интересует меня вот такой вопрос: есть три цифровых сигнала с...

ШИМ 192кгц на AVR - возможно?
Подскажите пожалуйста, а возможно ли реализовать ШИМ с частотой 192кГц на AVR?

2
30.11.2017, 20:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2017, 20:21
Помогаю со студенческими работами здесь

Уменьшение разрядности ШИМ в AVR
Реально ли уменьшить разрядность ШИМ? Нужна частота порядка 250 Кгц........

AVR ATmega64 Режимы ШИМ
Задача: Мигать светодиодом. Вкл. состояние 200 мс, выкл. 700 мс. Для реализации использовать таймер...

Шим на микроконтролере avr atmega16
на всех сайтах искал про шим у меня вопрос нужно реализовать шим на микроконтролере авр ...

ШИМ сигнал через MOSFET
Всем привет. У меня есть WiFi модуль ESP-01. С него я хочу регулировать например яркость светодиода...

Неинвертированный ШИМ сигнал на ATMEGA8
Нужно сделать не инвертированный ШИМ сигнал на выходе OC1B микроконтроллера Atmega8 Вводные...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru