Код: Выделить всё
TCCR1B=0b10000001; //подавление помех, захват по спадающему фронту, источкик зг
TIMSK=0b00100100; //прерывания захват и переполнение Т1Код: Выделить всё
TCCR1B=0b10000001; //подавление помех, захват по спадающему фронту, источкик зг
TIMSK=0b00100100; //прерывания захват и переполнение Т1Может в этом проблема?ooogo писал(а):PD6 сконфигурировал на вход без подтяжки
Код: Выделить всё
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;как это может повлиять?Modest писал(а): Может в этом проблема?
да, смотрю осцилографом после компаратора, при включенном пиковом детекторе, при развертке 5 мкс.ValBag писал(а): у вас импульсы с LM311 идут?
В каком месте сигнала на ICP1 происходит захват?.
не вижу смысла в гистерезисе, мне нужно зафиксировать только первый импульс, а от игольчитых импульсов он не спасет, единственное может быть осцилографом только будут заметныВ компаратор лучше бы ввести некоторый гистерезис, т. к. сигнал у вас с пъезо..., то возможны игольчатые импульсы, которые осциллографом не сразу обнаружишь, при том масштабе развертки в которой смотрите сигнал.
наверное в железе, но не могу понять в какой части. для проверки PD6 сделал выходом и записывал в него ноль через определенную задержку, захват вроде работает нормально, длительность задержки определяет точно.А вообще, такие вещи, лучше отладить подавая на вход регулярный известный сигнал, начиная со входа МК и далее к началу. Тогда будет ясно, в какой части схемы "заковыка".
можно по подробней, а то ни разу не сталкивался с таким вопросом.А то, что сейчас происходит - да, можно попытаться определить длительность импульса захвата программным путем.
это синхроимпульс для запуски развертки, он же возбуждающий импульс передатчика уз. Возбуждение происходит методом ударного импульса, т.е. стоит полевик в истоке которого стоит колебательный контур с уз датчиком.ValBag писал(а): да, на выходе компаратора, вроде ничего лишнего нет. А что за импульс внизу, в начале?
"звон" от возбуждающего контура, проникает в приемник через общий трансформатор питания.По его фронтам есть какие-то выбросы на входе около 50 mV.
хочу измерить время прхождения уз через образец.Написали бы подробнее во вложении задачу и что хотите получить, с расстановкой процессов по времени и способом возбуждения входа.
флаг сбрасывать пробовал не помогает.Попробуйте перед разрешением прерывания сбросить флаг запроса по захвату.
По измерению длительности напишу попозже.
Может лучше попробовать так:ooogo писал(а):...по поводу длительности, думаю соединить вход ICR1 INT0, захват по спаду, прерывание по передниму фронту, и во внешнем прерывании брать значение TCNT1L TCHT1H счетчика таймера и смотреть разнизу с захватом ICR1L ICR1H !?
Код: Выделить всё
...
#define modTOP 0xFFFF // модуль счета Т1
unsigned char OverCount; // счетчик переполнения Т1
unsigned int TimeDN, TimeUP; // время спада и фронта импульса
unsigned int RezTime; // для широких импульсов long
...
// обработка переполнения
OverCount++;
...
// обработка захвата
if (~(PIND&0x40))
{
TimeDN=ICR1;
TCCR1B|=(1<<ICES1); // следующий захват по фронту
OverCount=0;
}
else
{
TimeUP=ICR1;
TCCR1B&=(~(1<<ICES1)); // следующий захват по спаду
RezTime=TimeUP - TimeDN + (OverCount * modTOP);
}Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)
Есть ацп ADS1241 24-бит у него CLK является входным, передача МК(atmega8)->ацп более менее понятна.AI_Disable писал(а):Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)