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

 
 
> STM8S105, компилятор Ride7. Как установить, бит AFR7 в регистре OPT2
smk
сообщение Dec 28 2011, 09:45
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Вот собственно не могу разобраться как получить доступ к регистрам конфигурации или как их правильно... Нашел пример под IAR, а под Ride7 не получается найти на примера ни описания. Хелп читаю, но пока не вижу явного упоминания. Нужна подсказка. Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ChipKiller
сообщение Dec 28 2011, 17:01
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 26-12-11
Пользователь №: 69 097



Цитата("smk")
Пытаюсь вот так, но что-то не получается........
FLASH_DUKR - отвечает за разрешение EEPROM, а Вам нужна FLASH (FLASH_PUKR).
Код
FLASH_PUKR = ((unsigned char)0x56);
FLASH_PUKR = ((unsigned char)0xAE);
......
Go to the top of the page
 
+Quote Post
smk
сообщение Dec 28 2011, 17:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(ChipKiller @ Dec 28 2011, 19:01) *
FLASH_DUKR - отвечает за разрешение EEPROM, а Вам нужна FLASH (FLASH_PUKR).
Код
FLASH_PUKR = ((unsigned char)0x56);
FLASH_PUKR = ((unsigned char)0xAE);
......

Уверены? На картинке из даташита нарисовано, что область с байтами опций (0х4800...) принадлежит EEPROM. Да и написано в даташите, что установка этих байт не отличается от записи в EEPROM, только нужно записать биты
Код
        FLASH_CR2 |= (1<<7);
        FLASH_NCR2 &= ~(1<<7);


В библиотечном примере есть такая штука
Код
#define FLASH_CR2_OPT   ((u8)0x80) /*!< Select option byte mask */
#define FLASH_NCR2_NOPT   ((u8)0x80) /*!< Select option byte mask */


void FLASH_ProgramOptionByte(u16 Address, u8 Data)
{
    /* Check parameter */
    assert_param(IS_OPTION_BYTE_ADDRESS_OK(Address));

    /* Enable write access to option bytes */
    FLASH->CR2 |= FLASH_CR2_OPT;
    FLASH->NCR2 &= (u8)(~FLASH_NCR2_NOPT);

    /* Program option byte and his complement */
    *((NEAR u8*)Address) = Data;
    *((NEAR u8*)(Address + 1)) = (u8)(~Data);

    FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);

    /* Disable write access to option bytes */
    FLASH->CR2 &= (u8)(~FLASH_CR2_OPT);
    FLASH->NCR2 |= FLASH_NCR2_NOPT;
}


Вот эти вот строчки не пон6имаю:
Код
    *((NEAR u8*)Address) = Data;
    *((NEAR u8*)(Address + 1)) = (u8)(~Data);


По идее это указатели на адрес в памяти, но что-то не пойму как его попроще...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th August 2025 - 16:14
Рейтинг@Mail.ru


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