ARM7 с нуля
Re: ARM7 с нуля
чтобы было куда ловить прерывания от таймера надо сделать то, о чем говорится в книжке - настроить контроллер прерываний.
но чтобы еще и было что получать, надо разрешить после прерывания в настройках самого таймера.
но чтобы еще и было что получать, надо разрешить после прерывания в настройках самого таймера.
Re: ARM7 с нуля
ARM7 писал(а):А правда,что там так можно?-
IO1DIR_bit.P1_20=1;
Там, это где ?
С хеадерами, что идут под LPC**** в IARе так можно.
Что там в комплекте с кейлом не в кусре.
Re: ARM7 с нуля
Сейчас проверил еще один большой плюс за ARMы
Из SEGGER SAM-ICE за 6тр сделал J-link v6 за 1.5тр -))))
В чем суть - под ARMы можно сделать самому БЕЗ НЕОБХОДИМОСТИ заливать его предварительно другим программатором (который надо откуда то взять -))) ) из кучки деталей рублей за 250 свой нормальный USB-шный, а не на несуществующий уже LPT-порт программатор-ОТЛАДЧИК, поддерживаемый всеми основными средами разработки.
Из SEGGER SAM-ICE за 6тр сделал J-link v6 за 1.5тр -))))
В чем суть - под ARMы можно сделать самому БЕЗ НЕОБХОДИМОСТИ заливать его предварительно другим программатором (который надо откуда то взять -))) ) из кучки деталей рублей за 250 свой нормальный USB-шный, а не на несуществующий уже LPT-порт программатор-ОТЛАДЧИК, поддерживаемый всеми основными средами разработки.
Re: ARM7 с нуля
Как объявить битовую переменную в Keil ?
Как написать такое?- void Write (bit Data)
Как написать такое?- void Write (bit Data)
Re: ARM7 с нуля
Похоже нету такого, хотя можно наверно и unsigned int вместо bit.?
- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: ARM7 с нуля
Будет байт
Re: ARM7 с нуля
Что то я туплю.Ну а как работать с байтами? 

- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: ARM7 с нуля
typedef unsigned char byte;
typedef unsigned int word;
typedef unsigned int word;
Re: ARM7 с нуля
ARM7 писал(а):Что то я туплю.Ну а как работать с байтами?
Неправильно написал,блин, как работать с БИТами ?
Re: ARM7 с нуля
Ладно,нашел способ-
Начал переделывать код для DS18B20(не изобретать же велосипед) под LPC для Keil- наткнулся на bit, вот и вопрос возник не по теме.
Код: Выделить всё
//Флаг на 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 с нуля
... это битовая маска, только проще ИМХО писать неARM7 писал(а):Ладно,нашел способ-
Код: Выделить всё
#define ONE 0
#define TWO 1Код: Выделить всё
#define ONE 0x1
#define TWO 0x2Re: ARM7 с нуля
Ну и так можно.
Заранее вопросик оставлю здесь-а как это интересно делается,как в начале теме-вэб браузер и там в HTML страницу можно передавать значения переменных,значит можно в той же странице нажимать кнопки и дергать ногами МК. HTML я знаю, а дальше куда смотреть-что изучать ?
-хочу разобраться с этой мелочёвкой (не для них же такой мощный проц расчитан)-пригодятся в проектах, потом более высокими вещами займемся,опять таки не изобретая велосипедаARM7 писал(а): код для DS18B20(
Re: 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 с нуля
Что то я забросил всё это дело-весна-работ прибавилось.. Не могу победить этот DS18B20. Дайте кто нибудь код для LPC чтоли для этих штучек, всё понятно-как инициализировать- держим низкий уровень не менее 480 мкс и отпускаем ногу мк и если на линии есть датчик-он должен посадить линию,в моем коде этого не происходит. 