Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн окт 03, 2011 08:52:42
Зачем?!O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
Здесь можно немножко помяукать :)
https://radiokot.ru:443/forum/
Зачем?!O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
На цифровом?Necroteeth писал(а):посмотрел на осциллографе
да! остановил и увеличил, дабы убедиться!Gudd-Head писал(а):На цифровом?Necroteeth писал(а):посмотрел на осциллографе
Если всё время изменяется ровно на два, то это где-то в проге тогда надо искать.Necroteeth писал(а):да! остановил и увеличил, дабы убедиться!
получите http://radiokot.ru/forum/search.php?key ... 1%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; //нижний порог
}
}
Бывают спалены драйверы портов. У меня недавно Мега8 всё время "1" выдавала на одном из выводов.KaRaTeL писал(а):Народ, возможна ли неисправность контроллера, при которой фьюз биты нормально читаются/пишутся, но при прошивке заведомо верной программы происходит ошибка?
да, авр.Gudd-Head писал(а):А самому проверить?O-LED писал(а):Что будет в регистре данных АЦП (ADCH, ADCL)??Могу предположить, что вы спрашиваете про АВР. Тут возможны как минимум два варианта: 1. АЦП завершит преобразование, и порт поменяет своё назначение только после этого (тогда данные будут корректные) или же 2. в регистрах рехультата будет полная лажа.
неужели не можете придуматьpyzh_man писал(а):Зачем?!O-LED писал(а):запустить преобразование АЦП, и не дождавшись конца преобразования, вывод этого ацп сделать выходом
Для этого в прерывании, где происходит запуск АЦП нужно проверять его на завершение преобразования. И если оное не завершилось, ПРОПУСКАТЬ новый запуск.O-LED писал(а):Вот я и думаю, делать этот вывод входом АЦП, и "вциснуть" измерение между прерываниями. Времени на измерение хватает, но "без запаса", и возможно иногда контроллер не успеет завершить измерение, и наступит следующее прерывание в обработчике которого вывод АЦП станет выходом, с "0" или с "1".
Действительно!!! чего я торможу........ если флага окончания измерения еще нет, значит просто игнорируем это измерение.КРАМ писал(а):Для этого в прерывании, где происходит запуск АЦП нужно проверять его на завершение преобразования. И если оное не завершилось, ПРОПУСКАТЬ новый запуск.O-LED писал(а):Вот я и думаю, делать этот вывод входом АЦП, и "вциснуть" измерение между прерываниями. Времени на измерение хватает, но "без запаса", и возможно иногда контроллер не успеет завершить измерение, и наступит следующее прерывание в обработчике которого вывод АЦП станет выходом, с "0" или с "1".
Может, купите готовый? http://ekits.ru/index.php?productID=689 напримерserpa писал(а):Может, кто возьмется за программку?
Видимо, и программаторы тоже есть в наличии?serpa писал(а):А эти МК есть в наличии (от разобранных устройств).
это разработка на заказ минимальные затраты? если кто и возьмется, то денег попросит минимум как пяток готовых вместе с пересылкой стоят.Поэтому ищу минимальные затраты.
Тогда ищите готовые схемы с прошивками.serpa писал(а):И программаторы есть ))). Не одно уже устройство собрано. Среди них есть и на МК. С программированием у меня беда.