Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 30.09.2022, 19:26  
Валерий_64
Прохожий
 
Регистрация: 30.09.2022
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Валерий_64 на пути к лучшему
По умолчанию ATMEGA и Линейный индуктосин (линейка)

Добрый день.

Имеется Линейный индуктосин (линейка), запитывается головка через усилители sin/cos частотой 1 Кгц сдвинутые на 90 градусов,

с линейки считывается и усиливается усилителем. Необходимо измерять и подсчитывать сдвиг фазы выхода с линейки относительно sin или cos .

Кто подскажет как мне организовать все это на микроконтроллере, sin/cos вырабатывает МК., выход буду ловить прерыванием.
Фиксировать переходы через 0 .

Запитку головки сделал, вот код:

#include ‹stdio.h›
#include ‹avr/io.h›
#include ‹util/delay.h›
#include ‹avr/interrupt.h›

char c=0;
ISR (TIMER0_OVF_vect)
{
TCNT0=208;

switch(c) {

case 0: PORTA=0b10;
break;
case 1: PORTA=0b00;
break;
case 2: PORTA=0b01;
break;
case 3: PORTA=0b11;

}
if (c‹3) c++; else c=0;

}

//-------КООРДИНАТА Z -----------

ISR( INT0_vect )
{

}
ISR( INT1_vect )//-------КООРДИНАТА Х -----------
{

}

ISR( INT2_vect )//-------КООРДИНАТА Y -----------
{

}
//-------------------------------------------------------------------------

int main(void)
{
DDRD=0x80;
PORTD=0xff;
DDRB=0x00;
PORTB=0xff;
DDRA=0xff;
GICR |= (1 ‹‹ INT0)|(1 ‹‹ INT1)|(1 ‹‹ INT2); // Разрешаем внешнее прерывание на входе INT0
MCUCR=(1‹‹ISC11) | (0‹‹ISC10) | (1‹‹ISC01) | (0‹‹ISC00);
MCUCSR=(0‹‹ISC2) ;
/***Настраиваем таймер0***/
TCCR0 = 3;
TIMSK |=(1‹‹TOIE0);//|(1‹‹TICIE1)); // Запускаем таймер
TCCR1B = (0‹‹CS12)|(1‹‹CS11)|(0‹‹CS10);//|(0‹‹ICES1)|(0‹‹ICNC1); // настраиваем делитель
TCNT1 = 0 ; // выставляем начальное значение TCNT1
sei(); // выставляем бит общего разрешения прерываний

while (1)
{
}

}

Фото запитка головки.
Вот видео : при движении линейки или головки что происходит.
https://disk.yandex.ru/i/6JdgSKkpyea17Q
Миниатюры:
Нажмите на изображение для увеличения
Название: IMG_20220930_101826.jpg
Просмотров: 0
Размер:	185.8 Кб
ID:	172957   Нажмите на изображение для увеличения
Название: 4823c6.jpg
Просмотров: 0
Размер:	38.2 Кб
ID:	172958  
Реклама:

Последний раз редактировалось Валерий_64; 30.09.2022 в 19:29.
Валерий_64 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли использовать линейный блок питания для зарядки плеера? radiolubitel 512 Аудиотехника 9 11.02.2021 16:13
atmega 32u4 сброс фьюзов tomitch AVR 3 16.08.2019 22:04
Линейный вход в магнитолу m_i_g Аудиотехника 2 02.04.2018 22:51
Линейный вход в автомагнитоле Chrystler Alexis_m Аудиотехника 15 05.07.2013 10:45
Помогите с ATmega 32 (32х) naumovich Микроконтроллеры, АЦП, память и т.д 10 07.10.2008 08:31


Часовой пояс GMT +4, время: 14:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot