16+
Четверг
23 мая
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Гудвин  (30.01.2019 21:39) , в ответ на Да у меня собственно уже есть такой проект, для которого ног мне катастрофично не хватает. Даже на STM32F429 глаз положила (ссылка №1) только из-за того, что у него ног еще больше, однако дорого показалось, тогда как моя на STM32F407 (ссылка №2) автор: Ксения
Грусть. Не тот грусть, который в корзинку кладут, а тот грусть, который тоска. Не тот тоска в который гвоздь забивают, а тот тоска, который грусть :) Вот мой простейший код для для AVR, который возвращает код нажатой кнопки матрицы 6*8. В 
прерывании. Если не допустимы задержки внутри, можно задействовать прерывание таймера и флаги в глобальных переменных. Код сляпан на скорую руку, но вполне рабочий (это радио пульт на mega8). Мега этим прерыванием пробуждается из спячки...
// Pin change 16-23 interrupt service routine
interrupt [PCINT2] void pin_change_isr2(void)
{                
  unsigned char i;
  unsigned char b;
  volatile unsigned char cod;
  
  delay_ms(5); // антидребезг
  b=PIND;
  if(b == 0xFF) return; // прерывание было при отпускании кнопки - выходим без обработки
  for (i=0;i<8;i++) 
   {
    if (!(b & 1)) break;
    b=b>>1;
   }                 
  cod=i;  

  PORTD = 0;      // меняем порты D и С местами
  DDRD  = 0xFF; 
  DDRC  = 0; 
  PORTC = 0x7F;
  delay_ms(5); // антидребезг
  b=PINC;
  for (i=0;i<6;i++) 
   {
    if (!(b & 1)) break;
    b=b>>1;
   }   

  DDRD=0x00;  // возвращаем  порты D и С в исходное состояние
  PORTD=0xFF;
  PORTC=0x00;
  DDRC=0x7F;

  cod=(i*8)+cod;
  cod+=1; // чтобы код начинался в единицы
//putchar(cod); // отладочный вывод в отладчик stk500
  PCIFR=0x04; // чистим флаг прерывания перед выходом
}
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX