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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC1114 + Keil, вопросы
swisst
сообщение Nov 24 2010, 13:46
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Доброго времени суток !

1. Подскажите как разместить переменную в памяти программы ? [разобрался]

под С51 было так...
Код
const uint8_t code var_name;


сейчас достаточно так...
Код
const uint8_t var_name;

____________________________________________________________________
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 24 2010, 14:05
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А
Код
static const uint8_t var_name;

работает?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 24 2010, 14:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



unsigned int const my_variable = 0x55555555;

если нужно по конкретному адресу, то, например, так:

unsigned int const secure __attribute__((at(0x1FC))) = 0x43218765;
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 24 2010, 14:17
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



ничего из предложенного не работает - переменная в секции .constdata, тип -data...

ЗЫ по конкретному адресу размещает - с этим вопросов нет.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 24 2010, 14:47
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(swisst @ Nov 24 2010, 16:17) *
переменная в секции .constdata, тип -data...

Не уверен, что это означает, что переменная размещена в ОЗУ. Но я в этом небольшой специалист.
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 24 2010, 15:12
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Судя по всему тему создал с горяча...

Код
const uint8_t Symbol[10] = {SYMBOL_0, SYMBOL_1, SYMBOL_2, SYMBOL_3, SYMBOL_4, SYMBOL_5, SYMBOL_6, SYMBOL_7, SYMBOL_8, SYMBOL_9};


Код
Symbol                                   0x00000d48   Data          10  indic.o(.constdata)


что говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 24 2010, 18:31
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(swisst @ Nov 24 2010, 17:12) *
говорит о том, что массив лежит во флэш и спецификатора const вполне достаточно...

для локальных переменных может и не хватить...
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 26 2010, 07:23
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Вопрос 2: Аппаратный I2C LPC1114 + EEPROM (AT24C01? например)

Вопрос несколько общий - кто поборол и у кого пошлО ?
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 26 2010, 09:42
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535.
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 26 2010, 10:14
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



дык...первым делом - мануал, вторым - примеры NXP...просто так сюда не пишу, в основном - читаю...

Код
//=====================================================================

void Init_I2C (){
    LPC_IOCON->PIO0_4 |= ((1<<0));            //Selects I2C function SCL (open-drain pin)
    LPC_IOCON->PIO0_5 |= ((1<<0));            //Selects I2C function SDA (open-drain pin)

    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<5);            //Enables clock for I2C
    LPC_SYSCON->PRESETCTRL |= (1<<1);                //De-asserts reset for I2C
    LPC_I2C->SCLL = 480;
    LPC_I2C->SCLH = 480;

    LPC_I2C->CONCLR = ((1<<2) | (1<<3) | (1<<5));
    NVIC_EnableIRQ(I2C_IRQn);
    LPC_I2C->CONSET |= (1<<6);
}

//================================================================================
=======

void I2C_IRQHandler (){
    uint8_t StatValue = LPC_I2C->STAT;
    test_i2c = StatValue;
    switch(StatValue){
        case 0x08:
            LPC_I2C->DAT = 0xA1;
            LPC_I2C->CONCLR |= ((1<<3) | (1<<5));
            break;
        case 0x10:
            LPC_I2C->DAT = 0xA1;
            LPC_I2C->CONCLR |= ((1<<3) | (1<<5));
            break;
        case 0x18:
            LPC_I2C->DAT = 0xFF;
            break;
        default:
            LPC_I2C->CONCLR |= (1<<3);    
    }
    SW_1_TOG;
}


проблема состоит в том, что нет я не вижу сигнала START (осцил-ом), но он как-бы есть (test_i2c = 8 - слежу через модбас, зажигается SW_1) - а дальше тишина...
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 29 2010, 12:03
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(rezident @ Nov 26 2010, 11:42) *
А чего там бороть-то? Взял пример I2C из папки \arm\examples\NXP\LPC11xx\IAR-LPC-1114-SK в IAR EWARM 5.50.5 и с полпинка завел этот I2C. Правда у меня не EEPROM была подключена, а LCD на PCF8535.


если не сложно - прицепите тестовый проект ИАРа

START condition увидел...mdk-ARM симулирует...в железе - не работает...все еще нуждаюсь в пинкЕ...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 29 2010, 18:57
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



swisst, а резисторы-то к питанию притянуты?
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 29 2010, 22:36
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(swisst @ Nov 29 2010, 17:03) *
если не сложно - прицепите тестовый проект ИАРа
Не уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте.

Прикрепленные файлы
Прикрепленный файл  IAR_LPC_1114_SK_I2C_simple.zip ( 43.27 килобайт ) Кол-во скачиваний: 33
 
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 30 2010, 06:55
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(toweroff @ Nov 29 2010, 20:57) *
swisst, а резисторы-то к питанию притянуты?


разумеется - обе линии (и SCL, и SDA)...

Цитата(rezident @ Nov 30 2010, 00:36) *
Не уверен, что вы сможете это очень просто адаптировать под Keil, но попробуйте.


спасибо - поковыряю...
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Nov 30 2010, 14:26
Сообщение #15


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

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



Лень создавать тему, спрошу про LPC111x здесь.
Что такое "Unique device serial number for identification" и где его посмотреть, кроме как в разделе "features" user manual'а ?


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

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

 


RSS Текстовая версия Сейчас: 29th April 2024 - 16:26
Рейтинг@Mail.ru


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