Запуск программы по звуковому сигналу 
				  
  Сообщение # 1         
 
looksfilm 
 
 
   
Постов: 328   
 
ОК  
 
Как реализовать включение программы мк автоматически когда, микрофон слышит музыку.   Использовать условия скажем.   Если ток на ножке привысил больше >200 то прогрмама начинает работать   Если ток на ножке привысил больше >300 то идет 2 программа   Если ток на ножке привысил больше >400 то идет 3 программа итд.   Но не вариан, они все будут рывками переключаться, нужно запустить только 1 цикл.   Как можно реализовать?Добавлено  (13.11.2014, 22:26) --------------------------------------------- Короче не кто не знает?
  
  
 
  Сообщение # 2         
 
Витинари 
 
 
   
Постов: 1503   
 
Друзья  
 
Рой в сторону АЦП. Надо будет собрать нечто на основе амперметра и периодически (раз в четверть секунды, например) замерять ток на входе. В зависимости от полученного значения и будет (через условные операторы) запускаться подпрограмма. Вот и все! 
  
 
  Сообщение # 3         
 
looksfilm 
 
 
   
Постов: 328   
 
ОК  
 
Мож кто то знает?   Суть в чем нужно скажем на порт A 0 и A 1 Повесить микрофон, и когда ток скажем превысит на входе мк 200Мв запускается програма в контройлере. 
  
 
  Сообщение # 4         
 
Витинари 
 
 
   
Постов: 1503   
 
Друзья  
 
Цитата  looksfilm  (
)
Суть в чем нужно скажем на порт A 0 и A 1 Повесить микрофон, и когда ток скажем превысит на входе мк 200Мв запускается програма в контройлере.
    Какой контроллер? По-прежнему тинька?   Я уже советовал выше использовать АЦП. Фактически, тебе нужно собрать вольтметр, каждые секунду-полсекунды проверять показания, и по ним запускать подпрограммы. 
  
 
  Сообщение # 5         
 
looksfilm 
 
 
   
Постов: 328   
 
ОК  
 
Цитата  NovemberDreamer  (
)
Какой контроллер? По-прежнему тинька? Я уже советовал выше использовать АЦП. Фактически, тебе нужно собрать вольтметр, каждые секунду-полсекунды проверять показания, и по ним запускать подпрограммы.
    Пример можно хоть какой то. 
  
 
  Сообщение # 6         
 
Витинари 
 
 
   
Постов: 1503   
 
Друзья  
 
Вот кусок кода для измерения напряжения (в оригинале была AtMega8). Я в АВР не спец, так что это только "информация к размышлению"   Зеленым выделил свой код.   Замер идет на ножке ADC0.   Цитата 
#include <avr/io.h>   #include <avr/interrupt.h>   #include <util/delay.h>   volatile unsigned int display = 0;   volatile unsigned long value;   volatile unsigned int adc_counter;   // Прерывание по окончанию преобразования АЦП   ISR (ADC_vect)   {   value = value + (ADC*11/4); // Суммируем старое и новое значения АЦП, преобразуем   adc_counter++; // Увеличиваем счетчик измерений   }   // Главная функция   int main (void)   {   // Настройка АЦП   ADCSRA |= (1 << ADEN) // Разрешение АЦП   |(1 << ADSC) // Запуск преобразования   |(1 << ADFR) // Непрерывный режим работы АЦП   |(1 << ADPS2)|(1 << ADPS1) // Предделитель на 64 (частота АЦП 125kHz)   |(1 << ADIE); // Разрешение прерывания от АЦП   ADMUX |= (1 << REFS1)|(1 << REFS0); // Внутренний ИОН 2,56V, вход ADC0   sei(); // Глобально разрешаем прерывания   // Главный цикл   while(1)   {   if(adc_counter > 300) // Если количество измерений больше 300   {   display = value/adc_counter; // Вычисляем среднее значение АЦП   adc_counter = 0; // Обнуляем счетчик измерений   value = 0; // Обнуляем буфер АЦП   }   _delay_ms(50);   // запуск подпрограммы   if(display >= 60) // значение вычислено примерно. Должно бы соответствовать 0,2 В.   {   // выполняется подпрограмма   }    }   }
    
Цитата  looksfilm  (
)
Маэстро говорит так лучше.
   Выписка из правил  
Запрещено создавать следующие темы и сообщения на форуме:   - дублирующие по тематике существующие;    Не хулигань 
      
  
 
  Сообщение # 7         
 
looksfilm 
 
 
   
Постов: 328   
 
ОК  
 
У меги и тини код разный.   например вот мега   #include <avr/io.h>   #include <util/delay.h>   Вот тини   #include <tiny13a.h>   #include <delay.h>Добавлено  (29.11.2014, 10:22) --------------------------------------------- Короче разобрался есть такие ноги у мк ADC 1 ADC 2 ADC 3   Вот на них идет сигнал, потом програмно замеряешь его и запускаешь нужный цикл.
Добавлено  (29.11.2014, 10:25) --------------------------------------------- Как смоделировать аудио в Proteus "пишет неправельная амплитуда"
  
  
 
  Сообщение # 8         
 
Egour 
 
 
   
Постов: 916   
 
Друзья  
 
Цитата  looksfilm  (
)
У меги и тини код разный
    Я не особо разбираюсь в МК Atmel, но что-то мне подсказывает - код разный не у тини и мега, а различается код написанный в разных средах разработки.   Цитата  looksfilm  (
)
когда ток скажем превысит на входе мк 200Мв
    Напряжение, а не ток. Не Мв, а мВ     Цитата  looksfilm  (
)
Как смоделировать аудио в Proteus "пишет неправельная амплитуда"
    Если что, дробные значения нужно вводить через точку, а не через запятую. Запятых Протеус не понимает. 
  
 
  Сообщение # 9         
 
looksfilm 
 
 
   
Постов: 328   
 
ОК  
 
Чем можно скомпилировать из BASCOM-AWR в hex ???   Добавлено  (29.11.2014, 12:53)   ---------------------------------------------   Все разобрался!   Добавлено  (29.11.2014, 12:54)   ---------------------------------------------   Вот че вышло)   $regfile = "attiny13.dat"   $crystal = 9600000   Config Adc = Single , Prescaler = Auto , Reference = Internal   Config Portb.0 = Output   Config Portb.1 = Output   Config Portb.2 = Output   Config Portb.3 = Output   Start Adc   Do   If Getadc(2) >= 500 Then   Portb.0 = 1   Waitms 200   Portb.0 = 0   Portb.1 = 1   Waitms 200   Portb.0 = 0   Portb.1 = 0   Else   Portb.0 = 0   Portb.1 = 0   End If   If Getadc(2) >= 700 Then   Portb.2 = 1   Waitms 200   Portb.2 = 0   Portb.3 = 1   Waitms 200   Portb.2 = 0   Portb.3 = 0   Else   Portb.2 = 0   Portb.3 = 0   End If   Loop   End 
  
 
  Сообщение # 10         
 
caha2011 
 
 
   
Постов: 766   
 
Друзья  
 
Цитата  looksfilm  (
)
Вот че вышло) 
  Я попробовал скомпилировать выдает ошибку