Вопрос по AVR-студио

Тема в разделе "WASM.ELECTRONICS", создана пользователем Sharaevskiy_Vitaliy, 28 май 2008.

  1. Sharaevskiy_Vitaliy

    Sharaevskiy_Vitaliy Шараевский Виталий Юрьевич

    Публикаций:
    0
    Регистрация:
    16 май 2008
    Сообщения:
    8
    Адрес:
    Украина, г.Киев
    есть следующий код (например) :

    .dseg
    peremen_1: .db 0x05

    .cseg

    ...

    ldi R30, low(peremen_1)
    ldi R31, high(peremen_1)
    ld R16, Z

    Использую косвенную адресацию памяти данных. При проверке на симуляторе адрес в регистровую пару R30:R31 загружается правильный (контролирую по листингу), а вот в R16 загружается 0xFF, но не то число, которое присвоено переменной...Это нормально, или я что-то не так делаю??...Заранее благодарен
     
  2. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    В описании директивы черным по белому написано:

    DB - Define constant byte(s) in program memory and EEPROM

    В сегменте .dseg -> MD.

    А так всё правильно. Перед тем как читать нужно записать туда что-то. Что запишешь, то и прочитаешь.
    В ОЗУ можно только резервировать место, а не определять какие-либо переменные.
    Место выделил, в проге записал ... тогда можно и считывать. А так будешь читать то незная что.
     
  3. Sharaevskiy_Vitaliy

    Sharaevskiy_Vitaliy Шараевский Виталий Юрьевич

    Публикаций:
    0
    Регистрация:
    16 май 2008
    Сообщения:
    8
    Адрес:
    Украина, г.Киев
    Понял свою ошибку...Большое спасибо