Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Мелкие вопросы по МК и ПЛИС.
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Может я неправильно ищу, но что то не нашел))) Как компьютерную клавиатуру прикошачить к МК? мега 16?
Есть разем USB, на отладочной плате, потом, клава питается от USB и общается с компом по этой шине. Вопрос:
Каким образом по двум проводам передается столько команд от кнопок? я так понял, что клавиатура - соединена в столбцы и строки. Опрашивается, и выдается ответ в комп. Я правильно понял, что инфа принимается за счет определенной последовательностей импульсов. Помогите плиз)))
Есть разем USB, на отладочной плате, потом, клава питается от USB и общается с компом по этой шине. Вопрос:
Каким образом по двум проводам передается столько команд от кнопок? я так понял, что клавиатура - соединена в столбцы и строки. Опрашивается, и выдается ответ в комп. Я правильно понял, что инфа принимается за счет определенной последовательностей импульсов. Помогите плиз)))
Не умеешь - не берись, но не взявшись не научишься...
Чтобы действительно понять, как происходит обмен информацией по USB, надо ознакомиться с весьма толстой литературой (несколько сотен страниц). Если нужно узнать, как работает протокол PS/2, для начала можно посмотреть сюда: [url]http://wiki.osdev.ru/index.php/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%Stalker46 писал(а):Может я неправильно ищу, но что то не нашел))) Как компьютерную клавиатуру прикошачить к МК? мега 16?
Есть разем USB, на отладочной плате, потом, клава питается от USB и общается с компом по этой шине. Вопрос:
Каким образом по двум проводам передается столько команд от кнопок? я так понял, что клавиатура - соединена в столбцы и строки. Опрашивается, и выдается ответ в комп. Я правильно понял, что инфа принимается за счет определенной последовательностей импульсов. Помогите плиз)))
BB%D0%BB%D0%B5%D1%80_%D0%B8%D0%BD%D1%82%D0%B5%D1
%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0_PS/2[/url] (там описывается контроллер PS/2, входящий в состав ПК, но описан и сам протокол обмена). Ну а сама клава -- действительно матрица кнопок, опрашиваемая внутренним контроллером (который находится в самой клаве). Он-то и преобразует нажатия-отпускания кнопок в последовательность сигналов на интерфейсах PS/2 и/или USB.[/url]
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Интерфейс ай два си.

куда резисторы подключать то? и что это за прямоугольники с шинами SDA и SCL? Это выводы контроллера? Мне надо на отладочную плату это прикошачить. По какой схеме? мега 16 - контроллер.
А также подскажите, как куда и по какой схеме подключать SPI. Пожалуйста - сначала сделаю, а потом разбираться буду...
куда резисторы подключать то? и что это за прямоугольники с шинами SDA и SCL? Это выводы контроллера? Мне надо на отладочную плату это прикошачить. По какой схеме? мега 16 - контроллер.
А также подскажите, как куда и по какой схеме подключать SPI. Пожалуйста - сначала сделаю, а потом разбираться буду...
Не умеешь - не берись, но не взявшись не научишься...
- Реклама
резисторы можно подключить в любом месте.
прямоугольнички это мелкосхемы/девайсы с интерфейсом I2C/TWI и имеющие соответствующие выводы.
SPI подключается к выводам согласно ДШ
прямоугольнички это мелкосхемы/девайсы с интерфейсом I2C/TWI и имеющие соответствующие выводы.
SPI подключается к выводам согласно ДШ
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
есссно на плюс
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
можно и так, но я обычно ставил резисторы непосредственно возле МК
зы надо 3 пина на TWI: земля и 2 сигнала. это если устройство на другой плате.
зы надо 3 пина на TWI: земля и 2 сигнала. это если устройство на другой плате.
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Проблема была с развлетвлением питания. Мне хотелось бы, чтобы тумблер переключил, включил юизби питание, поставил джампер для подачи юизби питания на всю плату и все - плата запитана. или опять же, включил тумблер, включил батарейное питание или ИП в разъем для питания, потом джампер воткнул на соединение с цепью стабилизатора. т.е. получится как бы двойное питание - можно от компа запитать, можно от чего то своего.
Не умеешь - не берись, но не взявшись не научишься...
- Сообщения: 119
- Зарегистрирован: Ср ноя 07, 2007 15:17:20
Код: Выделить всё
void delay(unsigned short ms) // Минимальная задержка с кварцем 8 МГц - 1 мс
{
unsigned short i, j, k; // объявляем переменные
for (i=0; i<ms; i++) // главный цикл формирования задержки
for (j=0; j<185; j++) // вложенный цикл формирования задержки
k++; // произвольное действие
}
/****************************************************/2 Объясните как работатет этот кусок программы. Для строки for (i=0; i<ms; i++) понятно - т.е. цикл прошел и благодаря инкременту i, содержимое переменной увеличилось на 1 и так до тех пор пока i<ms. Аналогично и для второго цикла, но как они оба связаны не могу понять и откуда взяли число 185?
Далее код этой же программы
Код: Выделить всё
int main(void) // начало основной программы
{
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
while (1) { // Бесконечный цикл
// ---------- вращаем моторы вперед 1 сек ----------
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
delay(1000); // ждем 1 сек.
// --------------------------------------------------
// ---------- вращаем моторы назад 1 сек ----------
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
delay(1000); // ждем 1 сек.
// --------------------------------------------------
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы4 Как я понял функция имеет такой тип:
тип_возвращаемого_значения имя_ф-ии (список_параметров)
вместо тип_возвращаемого_значения просто тип int, char и т.д., или же void если ф-я не возвращает никакого значения - что значит возвращает и не возвращает?
список_параметров тоже не совсем ясно. Например, int primer (int n) здесь в скобках просто объявление переменной n, что можно было сделать так 2-мя строчками:
int n
int primer ()? Все правильно понял?
5 В скобках иногда указано void - что это значит?
Извините, просто сильно запутался((((
void delay(unsigned short ms),
разве не надо было typedef unsigned short ms сначала прописать или есть такой тип?
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Кароче для АЦП нужно подать питание от Vcc на AVcc через дроссель на 120микрогенри. Можно ли применить вот такую индуктивность?
http://www.chipdip.ru/product0/17106.aspx
http://www.chipdip.ru/product0/17106.aspx
Не умеешь - не берись, но не взявшись не научишься...
вполне можно.
вот только цена чипе
я у местных барыг по 2.90 беру.
вот только цена чипе
я у местных барыг по 2.90 беру.
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...



