реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как программно прочитать Signature Row
Bitman
сообщение Feb 21 2014, 13:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 25-01-08
Пользователь №: 34 422



Столкнулся с необходимостью прочитать данные из Signature Row в IAR. С ходу в интернете не нашел, написал сам. Вот делюсь, может кому пригодится:

Код
uint8_t ReadSignatureRow(uint16_t address) {
  // функция использует под свои нужды GPIOR0 и GPIOR1!
  GPIOR0=uint8_t(address);
  GPIOR1=uint8_t(address>>8);
  unsigned char _t=__save_interrupt();
  __disable_interrupt();
  while (SPMCSR_SPMEN==1);
  asm("IN R30,0x1E \n" // из GPIOR0, младшая часть адреса
      "IN R31,0x2A \n" // из GPIOR1, старшая часть адреса
      );
  SPMCSR=0x21;    
  asm("LPM \n"
      "MOV R16,R0 \n"
      "OUT 0x1E, R16"  // Выводим результат в GPIOR0
      );    
  while (SPMCSR_SPMEN==1);
  __restore_interrupt(_t);
  return GPIOR0;
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01333 секунд с 7
ELECTRONIX ©2004-2016