-
Сообщения
-
Александр, привет! Извиняюсь, что редко захожу на форум. Вы знаете, как не было, так и нет. Статистика, туды её в качель (судя по всему, по требованиям правительства РБ и лично ..., т.к. правительство в РБ полностью подчиняется ... ), требует от медиков не отражать в больничных, в сводках о количестве реальном. А мне пока не суждено было с ним встретится. @Александр Д. , искренне завидую Вам, что у вас там все получилось. Помню, у нас с Вами, @Александр Д. , получилась встреча в Минске. Кстати, если будете вновь у своего друга в Минске, звоните, СМС пересылайте. Встретимся! Владимир Маленович, @malenich , я тебе вновь объявляю - если в Беларусь будешь собираться, дай знать. Попробую в любую точку Беларуси добраться, лишь бы встретиться с тобой! Спсб!
-
рад) терь ты не сможешь ипать мозг - ни себе - ни людям я не колдовал) просто поставил как есть - эти молотилки должны давать кпд в 90% , есть нагревы - перегревы - долго он не отработает - и на выходе будет гуамно) вот и все .
-
Similar Content
-
By sunjob
добрый день
проект v-usb
выкус из спецификации/инета/форумов:
- реализация не полностью соответствует стандарту
- работа на 100% не гарантируется
- питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...) :))
у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.
как следствие стабильно может работать только при "определенных условиях"
в планах поработать с библиотекой.
для начало решил "набросать" альтернативный вариант. (так сказать, попытаться закрыть все возможные дыры в подключении)
достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)
tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx
NO atmega32u4, NO arduino pro micro etc...
-
By Ivarrr
Помогите понять где ошибка... не получается реализовать попеременный опрос 2ух каналов АЦП. Данные с одного канала должны передаваться на первый индикатор как напряжение, а со второго, соответственно на второй индикатор как сила тока.
#define F_CPU 8000000U
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <util/delay.h>
#define INDICATOR PORTD
#define RANK PORTB
unsigned int UR1=0, UR2=0, UR3=0, UR4=0; //переменные для деления на разряды значения напряжения
unsigned int IR1=0, IR2=0, IR3=0, IR4=0; //переменные для деления на разряды значения силы тока
int GainControl=1;
int current_ch=0;
float I, U;
unsigned char voltage, current;
unsigned int NUMS [10] = {0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000}; // от 0 до 9
int main(void)
{
DDRB=0xFF; PORTB=0x00; //ножки порта B для разряда
DDRC=0x00; PORTC=0x00; //ножки порта C для АЦП
DDRD=0xFF; PORTD=0xFF; //ножки порта D для индикаторов
TCCR0 |= (1<<CS01); TCCR0 &= ~((1<<CS00) | (1<<CS02)); //настройка частоты таймера f/8
TIMSK |= (1<<TOIE0); //разрешение прерываний по переполнению таймера
TCNT0=0; // обнуление счетчика
ADCSRA |= ((1<<ADEN) | (1<<ADSC) | (1<<ADPS2)); // запуск АЦП, запуск преобразования, предделитель 16
ADCSRA &= ~((1<<ADFR) | (1<<ADIF) | (1<<ADPS1) | (1<<ADPS0)); // режим преобразвания прерывестый, флаг перобразования опущен, предделитель 16
ADMUX |= ((1<<REFS0) | (1<<REFS1)); //источник опорного напряжения 2.56В
ADMUX &= ~((1<<ADLAR) | (1<<MUX0) | (1<<MUX1) | (1<< MUX2) | (1<<MUX3)); // направление записи, измерительная ножка ADC0;
sei(); // вкл прерывания
while (1)
{
if (ADCSRA & (1<<ADIF))
{
U_Convert((U*5.00/1024)*100);
I_convert((I*5.00/1024)*100);
}
}
}
void U_Convert (unsigned int U_num) //деление на разряды напряжения
{
UR1=U_num/100;
UR2=U_num%100/10;
UR3=U_num%10;
}
void I_convert (unsigned int I_num) //деление на разряды тока
{ IR1=I_num/100;
IR2=I_num%100/10;
IR3=I_num%10;
}
ISR (TIMER0_OVF_vect)
{
if (GainControl == 1) {INDICATOR = 0b11111110; RANK = NUMS[UR1];} //отображение 1ого разряда напряжения
if (GainControl == 2) {INDICATOR = 0b11111101; RANK = NUMS[UR2];} //отображение 2ого разряда напряжения
if (GainControl == 3) {INDICATOR = 0b11111011; RANK = NUMS[UR3];} //отображение 3ого разряда напряжения
if (GainControl == 4) {INDICATOR = 0b11110111; RANK = NUMS[IR1];} //отображение 1ого разряды силы тока
if (GainControl == 5) {INDICATOR = 0b11101111; RANK = NUMS[IR2];} //отображение 2ого разряды силы тока
if (GainControl == 6) {INDICATOR = 0b11011111; RANK = NUMS[IR3];} //отображение 3ого разряды силы тока
GainControl++;
if (GainControl > 6) GainControl=0; // мониторинг переменной для управления затворами
}
ISR (ADC_vect)
{
if (current_ch == 0)
{
U = ADC;
voltage = (U*2.56/1024)*100;
ADMUX |= (1<<MUX0);
current_ch = 1;
ADCSRA |= (1<<ADSC);
}
else
{
I = ADC;
current = (I*2.56/1024)*100;
ADMUX &= ~(1<<MUX0);
current_ch = 0;
ADCSRA |= (1<<ADSC);
}
}
-
By Обычный Человек
Микроконтроллер ATmega328p, внешний кварц 16МГц. Компилятор avr-gcc с оптимизацией O1
Написал код для управление шаговым двигателем. Работает так: требуемая скорость задается переменной STP1_ReqSpeed, дальше с частотой 100Гц срабатывает таймер TIM0, который высчитывает с какой частотой надо подавать сигналы на вход шагового драйвера. TIM1 работает в режиме частотно импульсной модуляции и по прерыванию меняет значение пина на противоположное.
Управление работает, скорость регулируется, но по какой то причине случаются пропуски шагов. Чаще всего во время ускорения. Количество пропусков от 0 до 4, обычно 2-3, длятся 32мс.
Из кода вырезал неиспользуемое. Заменить прерывания на аппаратный ШИМ возможности нет. Как убрать эти пропуски?
Осциллограммы:
-
By Артур Измаилов
1.Создать схему в которой два светодиоды загораются в следующей последовательности: 1 и 2, 2 и 3, 3 и 4, …, 15 и 16, 1 и 2 и т.д. (т.е. создается эффект движения двух светодиодов).
Дано условие выше. Решение задачи нужно представить в Proteus. Код для программирования пишу в AtmelStudio 7. Схему собрал в Proteus. Вывел 16 светодиодов через 2 порта (Порт B и Порт D). МК использовал ATMEGA 8 вариации в корпусе DIP с 28 ножками (SPDIL28).
До этого смог написать схему, чтобы работали светодиоды в последовательности 1.2.3.4.5....16.1.2.3.4 и тд. Делал через оператор FOR. Однако с этим кодом начались проблемы. Помогите пожалуйста.
Нижу представил изображение кода.
Заранее спасибо!
-
By Lisitsin
Собираем компьютер ZX Spectrum на микроконтроллерах AVR своими руками!
Проект открытый, все исходники и информация проекта по ссылке
https://yadi.sk/d/9S2S0ZmNqsLykQ
Проект печатной платы выполнен в PCAD-2006, программное обеспечение разработано в AVRStudio 4b401
Здесь отвечу на все возникающие вопросы и помогу со сборкой и запуском
-