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

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

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

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

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

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


Закрытая тема
Опции темы
Непрочитано 25.08.2012, 18:39   #871
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Yurkin2007 Посмотреть сообщение
У Вас массивы sms и stroka перекрываются. Когда пишите в sms - затираете stroka...
А поподробнее? это как?
Реклама:
papa_n вне форума  
Непрочитано 25.08.2012, 18:50   #872
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Это просто, Вы же написали объявление sms[] без указания его размера:
Код:
volatile char sms[];
char stroka[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2  E,0x83,0xDD,0x1B,0x0,0x0,
               0x01,0x0,0x0,0x9A,0x7E,0x09,0x00,0x00,0x00,0x0C,0x  01,0x00,0x00,0x00,0x00,0xFE};
В .map-файл загляните:
Код:
File: D:\tmp\main.c
Global variables memory map:

Variable       Address   Size
len                R3     1
sms               A00h      1
stroka            A01h     31
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 25.08.2012 в 18:59.
tempora вне форума  
Непрочитано 25.08.2012, 19:31   #873
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Надо убрать указание volatile, он то и мешает компилятору оптимизировать код.
nonamedov вне форума  
Непрочитано 25.08.2012, 19:51   #874
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от nonamedov Посмотреть сообщение
мешает компилятору оптимизировать код
В смысле, мешает заметить ошибку?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 25.08.2012, 20:14   #875
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
мешает заметить ошибку
Дело в том, что volatile может самым неожиданным способом воздействовать на поведение программы, как собственно и его отсутствие. Не представляю себе, как компилятор может так грубо ошибаться.
papa_n, а какой размер кучи указан в настройках компилятора, скорее всего Вам надо вместо массива использовать ссылки.
nonamedov вне форума  
Непрочитано 25.08.2012, 20:27   #876
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от nonamedov Посмотреть сообщение
volatile может самым неожиданным способом воздействовать на поведение программы
Насколько я помню, стандарт требует определения размера массива независимо от того, volatile он или нет. Просто, это определение м.б. дано в другом модуле, но оно должно быть. CodeVision совершенно волюнтаристски решил, что одного байта достаточно, и незачем беспокоить людей своими опасениями. Отличный компилятор, хорошо, что у меня его нет.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 25.08.2012, 20:45   #877
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
Отличный компилятор, хорошо, что у меня его нет.
Зря Вы так, только что проверил, как раз CVAVR указывает на эту ошибку и требует указать размер массива.
nonamedov вне форума  
Непрочитано 25.08.2012, 21:17   #878
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Тогда выходит, что ТС выложил проект, не указав, что он не компилится, что нехорошо. Я, за неимением CV, просто перетянул кусок кода в текущий проект и убедился в том, что он работает, знал бы, что CV ругается на ошибку, нафига бы я это делал?

papa_n, разрешите наши сомнения - у Вас CV выдает ошибку?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 26.08.2012, 00:55   #879
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
Тогда выходит, что ТС выложил проект, не указав, что он не компилится, что нехорошо. Я, за неимением CV, просто перетянул кусок кода в текущий проект и убедился в том, что он работает, знал бы, что CV ругается на ошибку, нафига бы я это делал?

papa_n, разрешите наши сомнения - у Вас CV выдает ошибку?
Я же не просто выложил проэкт, там есть все!! и прошивка тоже, да и я писал что проверяю это все на реальном кристале.
Но вот заглянув в map файл я понял что не так!
И самое обидное что Ошибки то и нет(((
Завтра попробую, но думаю все получится, просто надо сначало обьявить инициализированые масивы, а потом оставить место пустому, или задать для него размер, с запасом!!! Завтра проверю) Должу результат)
papa_n вне форума  
Непрочитано 26.08.2012, 01:25   #880
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

В моей практике была пара случаев, когда индекс убегал на пределы массива, и программа начинала фигачить по близлежащим объявленным переменным, изменяя их содержимое. С тех пор, если вдруг ни с того, ни с сего изменяется содержимое какой-то переменной само по себе, первое подозрение - на соседние массивы, и на несанкционированную запись ...
Yurkin2007 вне форума  
Закрытая тема

Закладки

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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