Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 20.03.2012, 10:42  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 139
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Неясный -- warning

имеется строка в программе
при условии формируется (изменяется) уставка ust1 которая сразу записывается в EEPROM и там сохраняется по адресу add1 , но копилятор выдает все время ошибку
../prog5.c:279: warning: passing argument 1 of '__eewr_word_m8535' discards qualifiers from pointer target type

программа вринципи работает нормально и с этой ошибкой но хотелось бы разобратся что не так
, компилятор AVRStudio4

кстати когда последущем данные записываются обратно в из памяти в параметр уставки ust1 ошибок нету







PHP код:
PHP:

#include ‹avr/iom8535.h›
...
const 
unsigned int add1 EEMEM 32764;   //адрес в EEPROM
...
...
/*ругается на эту строку*/
if (stv_1==1) {stv_1=0; ++ust1eeprom_write_word(&add1ust1); if(ust11200){ust1=1200;}}              
...
...
ust1 eeprom_read_word(&add1);       //прочитать  данные из EEPROM 
Реклама:

Последний раз редактировалось vvkka; 20.03.2012 в 10:48.
vvkka вне форума  
Непрочитано 20.03.2012, 11:09  
Djakovskij
Вид на жительство
 
Регистрация: 14.06.2009
Адрес: Україна Київська обл. м.Буча
Сообщений: 327
Сказал спасибо: 104
Сказали Спасибо 105 раз(а) в 69 сообщении(ях)
Djakovskij на пути к лучшему
По умолчанию Re: Неясный -- warning

Убери const.
Djakovskij вне форума  
Сказали "Спасибо" Djakovskij
vvkka (20.03.2012)
Непрочитано 20.03.2012, 11:17  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 139
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Re: Неясный -- warning

да предупреждение изчезло , спасибо но если можно коментарий , почему адрес нельзя обьявить как константу, в некоторых примерах я встречал такую форму записи и ошибок небыло
vvkka вне форума  
Непрочитано 20.03.2012, 11:57  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Неясный -- warning

Сообщение от vvkka Посмотреть сообщение
и там сохраняется по адресу add1
Может, все-таки не "по адресу add1", а по адресу хранения переменной addr1 ? Т.е. переменной addr1, хранящейся в EEPROM по неизвестному адресу, присвоено значение NNNN. Это будет для понимания проще.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 20.03.2012, 13:02  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Неясный -- warning

по моему это косяк в программе - зачем неизменный адрес передавать ссылкой?
Hives вне форума  
Непрочитано 20.03.2012, 13:29  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Неясный -- warning

И потом, зачем объявлять переменную, которая будет константой? Объявите константу через #define
PHP код:
#include ‹avr/iom8535.h› 
... 
#define  EE_ADDRESS  (unsigned int *)32764   //адрес в EEPROM 
... 
... 
if (
stv_1==1) {stv_1=0; ++ust1eeprom_write_word(EE_ADDRESSust1); if(ust11200){ust1=1200;}}               
... 
... 
ust1 eeprom_read_word(EE_ADDRESS); 
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
vvkka (20.03.2012)
Непрочитано 20.03.2012, 17:36  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 139
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Re: Неясный -- warning

Сообщение от Yurkin2007 Посмотреть сообщение
И потом, зачем объявлять переменную, которая будет константой? Объявите константу через #define
PHP код:
#include ‹avr/iom8535.h› 
... 
#define  EE_ADDRESS  (unsigned int *)32764   //адрес в EEPROM 
... 
... 
if (
stv_1==1) {stv_1=0; ++ust1eeprom_write_word(EE_ADDRESSust1); if(ust11200){ust1=1200;}}               
... 
... 
ust1 eeprom_read_word(EE_ADDRESS); 


а если таких переменных будет большое количество , возможноли создать массив указателей или констант адресации, возможно у кого есть такие примеры
vvkka вне форума  
Непрочитано 20.03.2012, 20:16  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Неясный -- warning

Сообщение от vvkka Посмотреть сообщение
но копилятор выдает все время ошибку
../prog5.c:279: warning: passing argument 1 of '__eewr_word_m8535' discards qualifiers from pointer target type
Правильный вариант примерно так:
Код:
eeprom_write_word((uint16_t *)&add1, ust1);
CodeNameHawk вне форума  
Непрочитано 20.03.2012, 20:36  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Неясный -- warning

Сообщение от vvkka Посмотреть сообщение
а если таких переменных будет большое количество , возможноли создать массив указателей или констант адресации, возможно у кого есть такие примеры
Какой то сложный путь выбираете.
Если данные неосмысленные то типа так
Код:
uint8_t masiv_bait[20] EEMEM;
Запись всего блока eeprom_write_block или eeprom_update_block

Удобнее пользоваться структурой.
И писать весь блок eeprom_update_block
запишет только измененные значения.
CodeNameHawk вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:07.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot