Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
1

Библиотека с "Atmel Studio" в "CV AVR": все принимается нормально, кроме массива байтов

03.01.2015, 15:00. Показов 3803. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, прошу помощи!
Взял библиотеку с "Atmel Studio" в "CV AVR", все приняло нормально кроме массива байтов.

C
1
2
3
4
5
6
7
8
9
10
static const byte FontLookup [][5] PROGMEM= // Выдает ошибку на это строку - "';' expected"
{
    { 0x00, 0x00, 0x00, 0x00, 0x00 },   //   0x20  32
    { 0x00, 0x00, 0x5F, 0x00, 0x00 },   // ! 0x21  33
    { 0x00, 0x07, 0x00, 0x07, 0x00 },   // " 0x22  34
    //...
    { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x 0x78 120
    { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y 0x79 121
    { 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z 0x7A 122
};
Подправьте кому не лень.

Вот сама библиотека: https://github.com/gresolio/N3310Lib ( n3310.c , n3310.h )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2015, 15:00
Ответы с готовыми решениями:

AVR ассемблер. объявление массива .db Atmel Studio 7, ошибка компиляции?
Столкнулся со странной проблемой. Написал код для дисплея. код рабочий такой: .CSEG ;...

AVR ассемблер. объявление массива .db в макросе .macro не работает!? Atmel Studio 7
.CSEG ;разумеется .macro lcd_pr .if @0==6 ; .org 0x11ff - и так пытался dat: .db...

Почему AVR Studio 4, а не Atmel Studio 6?
По какой причине большинство специалистов по AVR микроконтроллерам в основном используют AVR Studyo...

Atmel Studio 6.0: Новичёк в AVR
Всем привет. Скачал и установил Atmel Studyo 6.0. Хочу разобраться с работой программы. Может мне...

34
25 / 19 / 7
Регистрация: 16.08.2013
Сообщений: 1,354
15.10.2015, 14:32  [ТС] 21
Author24 — интернет-сервис помощи студентам
Shrotnet, Там по другому пишется...
Как мне советовали перейти на AS та и вам советую.
По началу не привычно, но все же лучше чем CV AVR...
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 6
15.10.2015, 17:13 22
я раньше удачно писал небольшие проэкты на ассемблере в Atmel Studio, но перетащили меня в CV AVR - потому что он типа круче, а щас обратно ... ну и дела ...
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
15.10.2015, 18:58 23
ошибка где-то в инклудах, которые вставлены выше.
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 6
16.10.2015, 00:24 24
я удалил слово ... и всё пошло компилиться.
Миниатюры
Библиотека с "Atmel Studio" в "CV AVR": все принимается нормально, кроме массива байтов  
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
16.10.2015, 06:45 25
Shrotnet,

Не по теме:

вручную решения сюда выкладываются а не на картинках
иначе как тебя цитировать


а по теме, CV не знает такое слово PROGMEM это слово знает AS
удалив это слово ты разместил данные в ОЗУ, а его не так много
для работы с памятью программ и флеша они используют разные подходы
нюансы сейчас не помню, подниму старые проекты, скажу поподробней
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 6
16.10.2015, 16:52 26
сейчас я пробую ATMEGA 2560 ... памяти думаю ей хватит.
я уже нашёл другую библиотеку, вроде выводит, рисует, русского нет.
просто было интересно додавить причину в этой библиотеке.
поскольку тема заглохла, решил вставить свое решение.
Вдруг кому-то пригодится.
И вообще одно расстройство, при изучении всех этих тонкостей.
Сколько людей - столько и мнений.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
16.10.2015, 19:16 27
Цитата Сообщение от Shrotnet Посмотреть сообщение
Сколько людей - столько и мнений.
дело не в людях
у АТМеги три вида память
оперативная (ОЗУ)для переменных
память программ (ПЗУ флеш) для программы
и энергонезависимая для всяких настроек
поскольку используется гарвардская архитектура,то везде разные шины
и компилятор чтобы знать в какую память запихать переменную использует разные ключевые слова
про Atmel Studio, не знаю
а вот про CV AVR скажу
для использования ОЗУ ничего не надо
для памяти программ используется слово flash
для энергонезависимой eeprom
причем для записи чтения из энергонезависимой нужно сделать некоторые телодвижения, какие сейчас не помню,поскольку CV AVR, берет все на себя
вот кусок из моей реальной проги
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//запись в флеш
#include "global.h"
 
eeprom int m_aadr;
eeprom unsigned char m_chanel;
eeprom unsigned char m_R;
eeprom unsigned char m_B;
eeprom unsigned char m_G;
// записать настройки
void WriteMemory()
{
m_aadr=Addres;
m_chanel=chanel;
 m_R=vR;
 m_B=vB;
 m_G=vG;
}
 
// считать настройки
void ReadMemory()
{
Addres=m_aadr;
chanel=m_chanel;
 vR=m_R;
 vB=m_B;
 vG=m_G;
}
 //в память программ таблица уровней
 flash unsigned char   tableLed[]=
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 6
16.10.2015, 20:44 28
есть ли у кого готовый примитивный проэкт с подключением дисплея, для вывода руссского текста, на дисплей 3310-5110, написаный в AtmelStudio ?
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
17.10.2015, 12:50 29
Цитата Сообщение от ValeryS Посмотреть сообщение
удалив это слово ты разместил данные в ОЗУ, а его не так много
с какой радости? Это ваще-то константы. CV размещает их во FLASH. Поправьте меня (желательно дизассемблированным кодом), если я ошибаюсь.
Цитата Сообщение от ValeryS Посмотреть сообщение
ПЗУ флеш
ПЗУ - это не FLASH. ПЗУ - это "металлическая маска", суровая и безотказная, в отличие от FLASH. В даташитах МК обычно про эту часть контроллера юзеру ничего не сказано.

Цитата Сообщение от Shrotnet Посмотреть сообщение
есть ли у кого готовый примитивный проэкт с подключением дисплея, для вывода руссского текста, на дисплей 3310-5110, написаный в AtmelStudio ?
есть в CV AVR, но вообще - я переделывал его как раз из AVR Studio (не Atmel Studio, но компилер в общем-то одинаковый, как я понимаю). Переделайте сами, в этом нет ничего особо сложного, мы вам поможем ).
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 6
17.10.2015, 13:30 30
на выходных займусь ... и ещё вопросик ... встречал ли кто нибудь, существующий для ПРОТЕУСА эмулятор графического дисплея на контроллере ST7920 ? поскольку в Протеусе для KS0108 много ЖКИ, а вот для ST7920 может попробую установить сейчас Proteus 8.1 вместо Proteus 7.8 ... и в гугле информации по этому поводу нет ... какие то китайцы вроде написали что-то для ST7920 , но там народ возмущался что работает плохо, недопилили и забросили. А это же очень распространенный индикатор ST7920 ...
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
17.10.2015, 13:44 31
Цитата Сообщение от Voland_ Посмотреть сообщение
ПЗУ - это не FLASH. ПЗУ - это "металлическая маска", суровая и безотказная, в отличие от FLASH.
хорошо, скажем ППЗУ(Перепрограмируемое Постоянное Запоминающие Устройство), что от этого поменялось, физику процесса в расчет не берем, пишется программатором или прошивается на заводе при изготовлении, какая разница для программы?
Цитата Сообщение от Voland_ Посмотреть сообщение
с какой радости? Это ваще-то константы. CV размещает их во FLASH.
уменя не размещало пока не вставил flash
Цитата Сообщение от Voland_ Посмотреть сообщение
Поправьте меня (желательно дизассемблированным кодом), если я ошибаюсь.
с атмегами уже года три не работаю, посему дизасемблированый листинг пока предоставить не могу,
вот поставлю CV AVR тогда смогу что то утверждать
может от версии зависит? или там какие то оптимизаторы?
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
17.10.2015, 14:31 32
Цитата Сообщение от ValeryS Посмотреть сообщение
уменя не размещало пока не вставил flash
В версии 2.х есть настройка в конфиге проекта: "Store global constants in FLASH memory"...
Цитата Сообщение от ValeryS Посмотреть сообщение
что от этого поменялось, физику процесса в расчет не берем, пишется программатором или прошивается на заводе при изготовлении, какая разница для программы?
ну причем тут для программы? Я вам назову даже несколько отличий доступа ко FLASH и ROM. Одна из них - использование дополнительных Wait-state тактов при относительно высоких частотах тактирования памяти. Вторая, к примеру, это возможность перепрограммирования. Третья - использование избыточности для хранения информации в ячейках (отсюда, например, появляющиеся прерывания ошибок доступа к памяти).
Всему есть свое название. С таким же успехом и EEPROM можно называть "ППЗУ", хотя, мы этого делаем же? Хотя бы для того, чтобы уточнить ньюансы метода доступа к ней, скорость чтения/записи и токи потребления.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
18.10.2015, 11:50 33
Цитата Сообщение от Voland_ Посмотреть сообщение
ну причем тут для программы? Я вам назову даже несколько отличий доступа ко FLASH и ROM.
самое смешное, что я с этим и не спорю
но это уже такие тонкие материи,которые при первом приближении не нужны
я пытался ответить на вопрос почему программа набранная в одной среде, не компилится в другой
как получилось решать вам
1
7 / 7 / 0
Регистрация: 03.04.2015
Сообщений: 45
17.12.2015, 10:26 34
Цитата Сообщение от Shrotnet Посмотреть сообщение
такая примитивная ошибка типа в синтаксисе, а разгадать не могу ... как же быть ???
Миниатюры
пропущено где то ";" до, а скорее всего после
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
17.12.2015, 10:56 35
Вот так компилируется, правда у меня IAR
C
1
2
3
4
5
6
7
8
9
10
static const unsigned char FontLookup [][5] =
{
    { 0x00, 0x00, 0x00, 0x00, 0x00 },   //   0x20  32
    { 0x00, 0x00, 0x5F, 0x00, 0x00 },   // ! 0x21  33
    { 0x00, 0x07, 0x00, 0x07, 0x00 },   // " 0x22  34
    //...
    { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x 0x78 120
    { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y 0x79 121
    { 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z 0x7A 122
};
0
17.12.2015, 10:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 10:56
Помогаю со студенческими работами здесь

AVR Simulator в Atmel Studio 6.0
Всем привет! Пишу простейшую программу для мигания LED для МК AT32UC3A1256 на языке С в Atmel...

Вычисления с дробями на AVR (Atmel Studio)
Друзья , есть функция вида y = exp(x/218) + 0.05x . Использую МК Atmega, atmel studio,...

Atmel Studio 7 AVR и прерывания по умолчанию
Установил я Atmel Studyo 7 и обнаружил следующие, если прерывание объявленно, а обработка прервыная...

AVR Studio 4.18 b и Atmel Software Framework 3.33
Доброго дня всем. Сейчас ковыряю от скуки ATxmega128A1... Пользуюсь AVR Studyo 4.18 и GNU AVR...

AVRISP Atmel STK500 и AVR Studio 5
Приехал мне ebay вот такой программатор AVRISP Atmel STK500 AVR ISP programmer USB...

Olimex AVR-IPS-MK2 и Atmel studio.
Всем доброго дня. Проблема следующая, не могу воспользоваться программатором Olimex AVR-IPS-MK2 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru