Страница 7 из 7
Re: ARM7 с нуля
Добавлено: Вт апр 12, 2011 14:47:22
Satyr
чтобы было куда ловить прерывания от таймера надо сделать то, о чем говорится в книжке - настроить контроллер прерываний.
но чтобы еще и было что получать, надо разрешить после прерывания в настройках самого таймера.
Re: ARM7 с нуля
Добавлено: Вт апр 12, 2011 14:48:47
Satyr
ARM7 писал(а):А правда,что там так можно?-
IO1DIR_bit.P1_20=1;
Там, это где ?
С хеадерами, что идут под LPC**** в IARе так можно.
Что там в комплекте с кейлом не в кусре.
Re: ARM7 с нуля
Добавлено: Вт апр 12, 2011 16:00:57
Satyr
Сейчас проверил еще один большой плюс за ARMы
Из SEGGER SAM-ICE за 6тр сделал J-link v6 за 1.5тр -))))
В чем суть - под ARMы можно сделать самому БЕЗ НЕОБХОДИМОСТИ заливать его предварительно другим программатором (который надо откуда то взять -))) ) из кучки деталей рублей за 250 свой нормальный USB-шный, а не на несуществующий уже LPT-порт программатор-ОТЛАДЧИК, поддерживаемый всеми основными средами разработки.
Re: ARM7 с нуля
Добавлено: Вт апр 19, 2011 21:27:06
ARM7
Как объявить битовую переменную в Keil ?
Как написать такое?- void Write (bit Data)
Re: ARM7 с нуля
Добавлено: Ср апр 20, 2011 10:41:16
ARM7
Похоже нету такого, хотя можно наверно и unsigned int вместо bit.?
Re: ARM7 с нуля
Добавлено: Чт апр 21, 2011 20:26:08
romazan
Будет байт
Re: ARM7 с нуля
Добавлено: Чт апр 21, 2011 21:18:02
ARM7
Что то я туплю.Ну а как работать с байтами?

Re: ARM7 с нуля
Добавлено: Чт апр 21, 2011 21:43:47
romazan
typedef unsigned char byte;
typedef unsigned int word;
Re: ARM7 с нуля
Добавлено: Пт апр 22, 2011 09:30:13
ARM7
ARM7 писал(а):Что то я туплю.Ну а как работать с байтами?

Неправильно написал,блин, как работать с БИТами ?
Re: ARM7 с нуля
Добавлено: Пт апр 22, 2011 10:10:35
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, вот и вопрос возник не по теме.
Re: ARM7 с нуля
Добавлено: Пт апр 22, 2011 10:21:05
ChipKiller
ARM7 писал(а):Ладно,нашел способ-
... это битовая маска, только проще ИМХО писать не
, а
.. тогда вместо
if(Flag & (1 << ONE)) будет
if(Flag & ONE) ... покороче в записи
Re: ARM7 с нуля
Добавлено: Пт апр 22, 2011 10:31:28
ARM7
Ну и так можно.
ARM7 писал(а): код для DS18B20(
-хочу разобраться с этой мелочёвкой (не для них же такой мощный проц расчитан)-пригодятся в проектах, потом более высокими вещами займемся,опять таки не изобретая велосипеда

Заранее вопросик оставлю здесь-а как это интересно делается,как в начале теме-вэб браузер и там в HTML страницу можно передавать значения переменных,значит можно в той же странице нажимать кнопки и дергать ногами МК. HTML я знаю, а дальше куда смотреть-что изучать ?
Re: ARM7 с нуля
Добавлено: Вт апр 26, 2011 09:07:43
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++);
}
}
Re: ARM7 с нуля
Добавлено: Пт май 20, 2011 19:00:28
ARM7
Что то я забросил всё это дело-весна-работ прибавилось.. Не могу победить этот DS18B20. Дайте кто нибудь код для LPC чтоли для этих штучек, всё понятно-как инициализировать- держим низкий уровень не менее 480 мкс и отпускаем ногу мк и если на линии есть датчик-он должен посадить линию,в моем коде этого не происходит.
