O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
Зачем?!
O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
Necroteeth писал(а):посмотрел на осциллографе
Gudd-Head писал(а):Necroteeth писал(а):посмотрел на осциллографе
На цифровом?
Necroteeth писал(а):да! остановил и увеличил, дабы убедиться!
получите search.php?keywords=%D0%BF%D0%BE%D0%B4%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B4%D1%80%D0%B5%D0%B1%D0%B5%D0%B7%D0%B3%D0%B0+%D0%A1%D0%B8&terms=all&author=&sc=1&sf=all&sk=t&sd=d&sr=posts&st=0&ch=300&t=0&submit=%D0%9F%D0%BE%D0%B8%D1%81%D0%BANecroteeth писал(а):может, смутную подсказку кто кинет, как в си сделать антидребезг программно?
Код: Выделить всё
void Din_Exe(bool t)
{
static char Cap; //цифровой интегратор
static bool State; //текущее состояние
if(t)
{
if(Pin_DIN) //если на входе высокий уровень,
{
if(Cap < (256 - DCAP_STEP))
Cap += DCAP_STEP; //заряжаем интегратор
else Cap = 255;
}
else //иначе
{
if(Cap > (DCAP_STEP - 1))
Cap -= DCAP_STEP; //разряжаем интегратор
else Cap = 0;
}
if((Cap > DCAP_UPPER) && !State) //верхний порог
{
Действие по переходу 0 -> 1
State = 1;
}
if(Cap < DCAP_LOWER) State = 0; //нижний порог
}
}
Стоит ли копать дальше? Прошиваю usb uart-ом, тоже заведомо исправным.KaRaTeL писал(а):Народ, возможна ли неисправность контроллера, при которой фьюз биты нормально читаются/пишутся, но при прошивке заведомо верной программы происходит ошибка?
да, авр.Gudd-Head писал(а):O-LED писал(а):Что будет в регистре данных АЦП (ADCH, ADCL)??
А самому проверить?Могу предположить, что вы спрашиваете про АВР. Тут возможны как минимум два варианта: 1. АЦП завершит преобразование, и порт поменяет своё назначение только после этого (тогда данные будут корректные) или же 2. в регистрах рехультата будет полная лажа.
неужели не можете придуматьpyzh_man писал(а):O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
Зачем?!
O-LED писал(а):Вот я и думаю, делать этот вывод входом АЦП, и "вциснуть" измерение между прерываниями. Времени на измерение хватает, но "без запаса", и возможно иногда контроллер не успеет завершить измерение, и наступит следующее прерывание в обработчике которого вывод АЦП станет выходом, с "0" или с "1".
КРАМ писал(а):O-LED писал(а):Вот я и думаю, делать этот вывод входом АЦП, и "вциснуть" измерение между прерываниями. Времени на измерение хватает, но "без запаса", и возможно иногда контроллер не успеет завершить измерение, и наступит следующее прерывание в обработчике которого вывод АЦП станет выходом, с "0" или с "1".
Для этого в прерывании, где происходит запуск АЦП нужно проверять его на завершение преобразования. И если оное не завершилось, ПРОПУСКАТЬ новый запуск.

serpa писал(а):Может, кто возьмется за программку?
serpa писал(а):А эти МК есть в наличии (от разобранных устройств).
это разработка на заказ минимальные затраты? если кто и возьмется, то денег попросит минимум как пяток готовых вместе с пересылкой стоят.Поэтому ищу минимальные затраты.
serpa писал(а):И программаторы есть ))). Не одно уже устройство собрано. Среди них есть и на МК. С программированием у меня беда.