ARM7 с нуля

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: ARM7 с нуля

Сообщение Satyr »

чтобы было куда ловить прерывания от таймера надо сделать то, о чем говорится в книжке - настроить контроллер прерываний.

но чтобы еще и было что получать, надо разрешить после прерывания в настройках самого таймера.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: ARM7 с нуля

Сообщение Satyr »

ARM7 писал(а):А правда,что там так можно?-
IO1DIR_bit.P1_20=1;

Там, это где ?
С хеадерами, что идут под LPC**** в IARе так можно.
Что там в комплекте с кейлом не в кусре.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: ARM7 с нуля

Сообщение Satyr »

Сейчас проверил еще один большой плюс за ARMы
Из SEGGER SAM-ICE за 6тр сделал J-link v6 за 1.5тр -))))

В чем суть - под ARMы можно сделать самому БЕЗ НЕОБХОДИМОСТИ заливать его предварительно другим программатором (который надо откуда то взять -))) ) из кучки деталей рублей за 250 свой нормальный USB-шный, а не на несуществующий уже LPT-порт программатор-ОТЛАДЧИК, поддерживаемый всеми основными средами разработки.
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Как объявить битовую переменную в Keil ?
Как написать такое?- void Write (bit Data)
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Похоже нету такого, хотя можно наверно и unsigned int вместо bit.?
Аватара пользователя
romazan
Потрогал лапой паяльник
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва
Контактная информация:

Re: ARM7 с нуля

Сообщение romazan »

Будет байт
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Что то я туплю.Ну а как работать с байтами? :dont_know:
Аватара пользователя
romazan
Потрогал лапой паяльник
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва
Контактная информация:

Re: ARM7 с нуля

Сообщение romazan »

typedef unsigned char byte;
typedef unsigned int word;
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

ARM7 писал(а):Что то я туплю.Ну а как работать с байтами? :dont_know:

Неправильно написал,блин, как работать с БИТами ?
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Ладно,нашел способ-

Код: Выделить всё

//Флаг на 8 бит
uint8_t Flag;
//Определяем биты флага
#define ONE        0
#define TWO       1
#define THREE   2
#define FOUR     3
#define FIVE       4
#define SIX          5
#define SEVEN    6
#define EIGHT     7

//Проверка соответствующего бита в флаге

//Проверить установлен ли бит ONE можно так
if(Flag & (1 << ONE))
  {
    //бит ONE установлен, делаем что-то
  }
//Првоерить сброшен ли бит ONE можно так
if(!(Flag & (1 << ONE)))
  {
    //бит ONE сброшен, делаем что-то
  }

//Сброс бита в 0
Flag&= ~(1 << ONE);

//Установка бита в 1
Flag|= (1 << ONE);


Начал переделывать код для DS18B20(не изобретать же велосипед) под LPC для Keil- наткнулся на bit, вот и вопрос возник не по теме.
Последний раз редактировалось ARM7 Пт апр 22, 2011 10:22:15, всего редактировалось 1 раз.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ARM7 с нуля

Сообщение ChipKiller »

ARM7 писал(а):Ладно,нашел способ-
... это битовая маска, только проще ИМХО писать не

Код: Выделить всё

#define ONE        0
#define TWO       1
, а

Код: Выделить всё

#define ONE        0x1
#define TWO       0x2
.. тогда вместо if(Flag & (1 << ONE)) будет if(Flag & ONE) ... покороче в записи
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Ну и так можно.
ARM7 писал(а): код для DS18B20(
-хочу разобраться с этой мелочёвкой (не для них же такой мощный проц расчитан)-пригодятся в проектах, потом более высокими вещами займемся,опять таки не изобретая велосипеда :)) Заранее вопросик оставлю здесь-а как это интересно делается,как в начале теме-вэб браузер и там в HTML страницу можно передавать значения переменных,значит можно в той же странице нажимать кнопки и дергать ногами МК. HTML я знаю, а дальше куда смотреть-что изучать ?
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Иногда надо бывает-вот посмотрел цифровым осциллом временные задержки для 72 мгц-

Код: Выделить всё

// unsigned int i;
// for (i=0; i<1; i++);
 // В этом цикле если i<...
 // 1- 1,18 us   15- 6,1 us     150- 53 us      1500- 520 us
 // 2- 1,58 us   20- 7,8 us     200- 70,5 us    2000- 695 us
 // 3- 1,9 us     30- 11,3 us    300- 105 us    3000- 1 ms
 // 4- 2,24 us   40- 14,75 us  400- 140 us    6000- 2 ms
 // 5- 2,56 us   50- 18,2 us    500- 174us     30000- 10 ms
 // 6- 2,96 us   60- 21,7 us    600- 209 us    60000- 20 ms
 // 7- 3,3 us     70- 25,2 us    700- 244 us    3000000- чуть больше 1 сек
 // 8- 3,62 us   80- 28,6 us    800- 279 us
 // 9- 3,96 us   90- 32,2 us    900- 314 us
 // 10-4,34 us  100-35,6 us   1000-348 us

Код: Выделить всё

int main(void)

 IODIR0= 1<<16;
 while(1){
 IOSET0=1<<16;
 for (i=0; i<3000000; i++);
 IOCLR0=1<<16;
 for (i=0; i<3000000; i++);
}
}
Аватара пользователя
ARM7
Встал на лапы
Сообщения: 85
Зарегистрирован: Пн мар 07, 2011 19:52:52

Re: ARM7 с нуля

Сообщение ARM7 »

Что то я забросил всё это дело-весна-работ прибавилось.. Не могу победить этот DS18B20. Дайте кто нибудь код для LPC чтоли для этих штучек, всё понятно-как инициализировать- держим низкий уровень не менее 480 мкс и отпускаем ногу мк и если на линии есть датчик-он должен посадить линию,в моем коде этого не происходит. :cry:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»