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

 
 
 
Reply to this topicStart new topic
> Вливаюсь в коллектив ARMоводов ч.2, LPC-H2103
adc
сообщение Dec 15 2010, 06:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Прошу помочь стартануть.
Использую:IAR6.10, MT-link, кит плата LPC-H2103.
Взял ИАРовский пример "IARMiniDev"
Пытаюсь переделать под мигание диодом на плате LPC-H2103.
Ничего не получается...
делаю так:
Код
int main(void)
{
  // Disable PLL
  PLLCON = 0;
  // Write Feed
  PLLFEED = 0xAA;
  PLLFEED = 0x55;
  // Set periphery divider /4
  APBDIV_bit.APBDIV  = 0;
  // Memory map init flash memory is mapped on 0 address
#ifdef FLASH
  MEMMAP_bit.MAP = 1;
#else
  MEMMAP_bit.MAP = 2;
#endif

  // Init variables
  PatternInd   = 0;
  pNextPattern = pLedPatterns[0];

  __disable_interrupt();
  // Init VIC
  VicInit();

  // Init GPIO
  PINSEL0 = PINSEL1 = 0;
  // Disable fast IO
  SCS_bit.GPIO0M = 0;
  // Set pins connect to LEDs as outputs
  IODIR = LED_MASK;
  // All LEDs off
  IOCLR = LED_MASK;
  KeysInit();

  // Init timer
  // Reset and stop timer0
  T0TCR = 2;
  // Set timer counters mode - clock by PCLK
  T0CTCR = 0;
  // Set timer prescaler
  T0PR  = 0;
  // Set timer period
  T0MR0 = PCCLK/TICK_PER_SEC;
  // Set match action - interrupt by MACH0 enable, reset counter
  T0MCR = 3;
  // No external action
  T0EMR = 0;
  // Assign to IRQ
  VICIntSelect_bit.TIMER0 = 0;
  // Set interrupt slots
  VICVectAddr3 = (unsigned int) Timer0Handler;
  VICVectCntl3_bit.NUMBER = VIC_TIMER0;
  VICVectCntl3_bit.ENABLED = 1;
  // Timer 0 interrupt enable
  VICIntEnable_bit.TIMER0 = 1;
  // Enable timer0
  T0TCR = 1;

// __enable_interrupt();

  while(1)
  {
  
    FIOCLR = LED_MASK;
   // wait();
   FIOSET = LED_MASK;
    //wait();
  
  
  
  
  
  };
} // main(void)

В режиме пошаговой отладки диод нереагирует
пробовал так:
Код
    IOCLR = LED_MASK;
   // wait();
   IOSET = LED_MASK;
    //wait();

Результата тоже нет.
В настройках проекта (ROMstart= 0x00000044, RAMstart=0x40000040)
Проект прикладываю.Схему платы тоже.


Прикрепленные файлы
Прикрепленный файл  v03_lsp2103_blink.zip ( 80.45 килобайт ) Кол-во скачиваний: 16
Прикрепленный файл  LPC2103.pdf ( 52.16 килобайт ) Кол-во скачиваний: 20
 
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 15 2010, 07:18
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Диодик, как я понимаю, "STAT green" ?

Вопросы на засыпку:
- к какой ножке МК он подключен?
- какой ножкой (ножками) МК Вы управляете?

Ну и претензия к Станимиру Боневу, что написал этот пример - мог бы расписать, что и куда подключено на IAR-LPC-2103 Mini evaluation board.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 15 2010, 07:28
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(esaulenka @ Dec 15 2010, 13:18) *
Диодик, как я понимаю, "STAT green" ?

да.
Цитата
Вопросы на засыпку:
- к какой ножке МК он подключен?
- какой ножкой (ножками) МК Вы управляете?

Пин P0.26. Ну вот собственно и непонятно как ножками(или ножкой) то дрыгать. По аналогии с инициализацией порта пытался сделать.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 15 2010, 07:36
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Не надо делать "по аналогии". Надо делать по документации. Работает гораздо лучше, я проверял sm.gif

#define BIT(x) (1UL<<(x))

IO0DIR = BIT(26); // настроили на выход

IO0SET = BIT(26); // погасили
IO0CLR = BIT(26); // зажгли


LED_MASK, если Вы ничего не меняли в примере, дёргает совсем другие ножки.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 15 2010, 07:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (adc @ Dec 15 2010, 12:50) *
Прошу помочь стартануть.

Напишите хоть три строчки НО СВОИ а не copy-paste.


QUOTE (esaulenka @ Dec 15 2010, 13:18) *
Ну и претензия к Станимиру Боневу, что написал этот пример

Это Вы еще мало творчества примерописателей видимо видели sad.gif. Бонев один из самых вменяемых, поверьте!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 15 2010, 07:49
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



На это пишет что порты неопределены:
Код
Error[Pe020]: identifier "IO0DIR" is undefined
Error[Pe020]: identifier "IO0SET" is undefined
Error[Pe020]: identifier "IO0CLR" is undefined

Где их надо определить?
зы: Си и IAR начинаю изучать, и по этому еще не привык к организации проекта. Сильно не пинайте, как сейчас говорят.
Цитата
Напишите хоть три строчки НО СВОИ а не copy-paste.

Ну вот и попробовал. Кругом куча граблей. Заливаю прошивку а выхлопа нет.
Хотелось бы запустить на чужом примере, а потом разобраться в достоинствах и недостатках кода и примера.
Ну что тут плохого? Добавляешь своего кода(не копипаст) в программу пример и проверяешь адекватность полученного ожидаемому.

Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 15 2010, 07:56
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



А это уже ко мне претензия sm.gif

На более "толстых" камнях помимо порта 0 есть и 1,2,3,4, соответственно, там эти регистры нумерованные.

В документации на LPC2101..2103 эти регистры значатся без индекса - просто IODIR, IOSET, IOCLR. Думаю, в хедере IAR'а iolpc2103.h сделано точно так же.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 15 2010, 09:05
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата
В документации на LPC2101..2103 эти регистры значатся без индекса

О! оно.. вот так заработала:
Код
IOSET = BIT(26); // погасили
IOCLR = BIT(26); // зажгли

Спасибо! cheers.gif
Буду капать дальше!

Подскажите что означает 1UL в
Код
#define BIT(x) (1UL<<(x))

В хелпе iar найти неполучается..
По файлу они везде:
Код
#define FOSC            14745600UL
#define TICK_PER_SEC    (8UL)
#define TIM_DPER        ((PCCLK*DELTA_PER)/1000UL)
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 15 2010, 09:31
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(adc @ Dec 15 2010, 15:05) *
Подскажите что означает 1UL в

Б. Керниган, Д. Ритчи
Язык программирования Си

раздел "константы".

Ну и остальные разделы тоже стоит прочитать sm.gif


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 15 2010, 10:08
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(esaulenka @ Dec 15 2010, 15:31) *
Б. Керниган, Д. Ритчи Язык программирования Си
раздел "константы".

В книге нет описания. Нашел здесь
UL тип данных (unsigned long int).
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 15 2010, 11:49
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Погуглил. Действительно, в первом издании (и что оно в интернетах делает?) этого нет.
Читайте второе!
Прикрепленные файлы
Прикрепленный файл  K_R_C_Language.zip ( 332.12 килобайт ) Кол-во скачиваний: 41
 


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

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

 


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


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