|
|
  |
копируем массив, вывод массива на ЖК проблемы |
|
|
|
Sep 14 2009, 14:01
|
Участник

Группа: Участник
Сообщений: 57
Регистрация: 9-07-08
Из: Волгоградская обл
Пользователь №: 38 838

|
код Код int znak=2; int znak1=77;
char *adres2; char *adres3;
//void regim_ustavka (void); //void inicializacia(void);
flash char lcd1[] = {"osn"}; //тоже рамещение во флеш flash char lcd2[] = {" menu"}; flash char lcd3[] = {" rabota"}; //flash char lcd4[] = {"nastoika"}; //массив будет очень большой
void indi (void) { //выводим инфомацию на экран LCD
lcd_gotoxy(0,0); //верхняя строка sprintf(lcd_biffer,"r=%-s %-s",*adres2,*adres3); lcd_puts (lcd_biffer);
lcd_gotoxy(0,1); //нижняя строка sprintf(lcd_biffer,"j=%s %i %i",*adres2,znak,znak1); //%s-слово sram, %i-число, lcd_puts (lcd_biffer); //n-перенос строки }
void main (void) { inicializacia();
strcpyf(adres2,lcd2); //функция копирует сроку из flash в sdram strcpyf(adres3,lcd3); //в библиотеке "string.h"
while(1){ indi (); } } После нескольких мытарств исползовал стандартную функцию копирования и вроде как все нормально без ошибок компилируется но в симуляторе на ЖК какаето каша выходит то вобще теряет слова, весь смысл этой затеи в очень большом массиве и разместить его в SDRAM неполучится, flash вполне подходит но при копировании что то не так симулятор использую ПРОТЭУС 7.4 SP3
Причина редактирования: Оформление цитаты исходника.
|
|
|
|
|
Sep 14 2009, 14:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(vvkka @ Sep 14 2009, 17:01)  код Для вставки кода есть специальная кнопка:  Цитата(vvkka @ Sep 14 2009, 17:01)  симулятор использую ПРОТЭУС 7.4 SP3 Компилятор и тип контроллера предлагаете угадать аудитории?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 14 2009, 14:36
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(Сергей Борщ @ Sep 14 2009, 17:28)  Компилятор и тип контроллера предлагаете угадать аудитории? Компилятор угадывается  [CAVR] ... Ну а контроллер, наверное, мега16... Автору - а приложите-ка папку с проектом и моделью в протеусе - быстрее помогут....
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Sep 14 2009, 18:12
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(_Pasha @ Sep 14 2009, 19:27)  А где инициализация указателей? Надо полагать, тут: Цитата Код strcpyf(adres2,lcd2); //функция копирует сроку из flash в sdram strcpyf(adres3,lcd3); //в библиотеке "string.h"
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Sep 14 2009, 18:46
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(vvkka @ Sep 14 2009, 20:01)  Код sprintf(lcd_biffer,"r=%-s %-s",*adres2,*adres3); ... sprintf(lcd_biffer,"j=%s %i %i",*adres2,znak,znak1); //%s-слово sram, %i-число, Попробуйте убрать звёздочки перед adres2 и adres3.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Sep 15 2009, 06:26
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(Goodefine @ Sep 14 2009, 22:12)  Надо полагать, тут: Это не инициализация, а разрушение какой-то памяти С указателями надо осторожнее. И вообще непонятно, нафига тут нужны промежуточные буфера, сделайте Код flash char *adres2; flash char *adres3; и присваивайте им свои lcd* напрямую
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|