Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср окт 29, 2025 17:29:55

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 19, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 13:15:21 
Мучитель микросхем
Аватар пользователя

Зарегистрирован: Вт сен 25, 2007 19:40:26
Сообщений: 438
Откуда: Челябинск
Рейтинг сообщения: 0
ARV писал(а):
а во-вторых - если все так хорошо, как вы говорите - почему у товарища траблы с тем, что объявленная signed char переменная не анализируется на значение меньше нуля? согласен, причины могут быть и не в типе - но я сужу лишь по тому, что сказано на форуме.

В том и дело, что этот "товарищ" только говорит что траблы. Пусть выкладывает проект, тем самым подкрепляет свои слова. А то Вы тут почти глотки друг другу рвете, а толку то?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 13:21:38 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
mr.Kirill писал(а):
А то Вы тут почти глотки друг другу рвете, а толку то?
какие глотки?! ведется цивилизованная корректная дискуссия :) просто есть 2 мнения, одно у tych-a, а другое - неверное :)))
это была шутка, чтобы tych не прицепился к словам :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 14:12:07 
Встал на лапы

Зарегистрирован: Пт май 23, 2008 23:59:37
Сообщений: 115
Откуда: Москва
Рейтинг сообщения: 0
mr.Kirill писал(а):
В том и дело, что этот "товарищ" только говорит что траблы. Пусть выкладывает проект, тем самым подкрепляет свои слова. А то Вы тут почти глотки друг другу рвете, а толку то?

Я думал, что написать три сроки для проверки проще чем качать файло.
Прикладываю, по просьбе "товарища".


Вложения:
Комментарий к файлу: проект+исходники
signed_char.rar [76.78 KiB]
Скачиваний: 314
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 21:24:10 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
У меня отрицательные числа получаются при компиляции и в cvavr 1.25.9 pro и в cvavr 2.03.2

Proteus 7.4 выводит и текст (я добавил в прогу) и цифры, а 7.2sp6 только цифры ! В VMLAB не проверял.


Вложения:
cvavr test.rar [70.42 KiB]
Скачиваний: 319

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 21:28:17 
Встал на лапы

Зарегистрирован: Пт май 23, 2008 23:59:37
Сообщений: 115
Откуда: Москва
Рейтинг сообщения: 0
Надеюсь товарищи практики пример глянули, галочки тоже потыкали и выводы сделали.

Для тех кто верит на слово. От галочек результат не меняется да и меняться не должен. Получается, что в данном случае в сравнении signed char выступает как unsigned char.
Код:
signed char c;
signed char z;

c=2;
z=0;

while (1)
      {
        c--;
        if (c<0) c=2;
        //if (c<z) c=2;
        //if (c==-1) c=2;
        printf("c=%i\n\r",c);
        delay_ms(500);
      };


В этом коде, если раскомментировать ифы при значении "с" меньше нуля сработает только третий(соответственно при с=-1).
Поэтому, получается что нормально использовать сравнение отрицательных чисел не получается. Как вариант выхода из ситуации - юзать переменные типа int в ущерб памяти.
Если необходимо сравнить с нулем( меньше нуля), как в моем случае, то можно написать например так: if (c<-1) c=2; или if (c<-22) c=2; :)) или любое число меньше 0... результат будет верный(сравнение будет как с нулем), но выглядеть будет дико.

ЗЫ. Данный глюк одинаков в 1.5.х и 2.0.х. Что это, баг или фича производителя - х.з. Возможно это одно из проявлений указанного тут красным шрифтом http://www.hpinfotech.ro/html/download.htm


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 21:40:26 
Встал на лапы

Зарегистрирован: Пт май 23, 2008 23:59:37
Сообщений: 115
Откуда: Москва
Рейтинг сообщения: 0
tych писал(а):
У меня отрицательные числа получаются при компиляции и в cvavr 1.25.9 pro и в cvavr 2.03.2

Proteus 7.4 выводит и текст (я добавил в прогу) и цифры, а 7.2sp6 только цифры ! В VMLAB не проверял.

т.е. считаем что глюк Протеуса 7.2? у меня SP2

картинко, это твой пример в 7.2sp2... т.е. как бы без изменений - глюк есть.


Вложения:
Комментарий к файлу: глюк
gluk.jpg [5.3 KiB]
Скачиваний: 566
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:02:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Telek писал(а):
Возможно это одно из проявлений указанного тут красным шрифтом http://www.hpinfotech.ro/html/download.htm
о как!!! :)))

ну что вам стоит пользоваться законно бесплатным софтом? который не только правильно работает, но и позволяет не чувствовать себя вором?!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:05:35 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
в Proteus 7.4 сравнение с нулем работает
а в 7.2 sp6 НЕТ


Вложения:
cvavr test 2 .rar [21.64 KiB]
Скачиваний: 295

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:06:15 
Встал на лапы

Зарегистрирован: Пт май 23, 2008 23:59:37
Сообщений: 115
Откуда: Москва
Рейтинг сообщения: 0
ARV писал(а):
Telek писал(а):
Возможно это одно из проявлений указанного тут красным шрифтом http://www.hpinfotech.ro/html/download.htm
о как!!! :)))

ну что вам стоит пользоваться законно бесплатным софтом? который не только правильно работает, но и позволяет не чувствовать себя вором?!


Судя по последним сообщениям, получается глюк Протеуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:07:40 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
а протеус у вас легально купленный?!?! :shock:

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:27:41 
Встал на лапы

Зарегистрирован: Пт май 23, 2008 23:59:37
Сообщений: 115
Откуда: Москва
Рейтинг сообщения: 0
ARV писал(а):
а протеус у вас легально купленный?!?! :shock:

а есть бесплатная/разумно стоящая для частного юзера замена?


Последний раз редактировалось Telek Вт сен 23, 2008 22:33:56, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:28:44 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
да, называется макетная плата :) и пользы на порядок больше!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 22:40:40 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
ARV писал(а):
tych, в Си переменные инициализируются нулевым значением всегда, если не объявлено иное. это стандарт...


Увы компиляторы про это не знают .
Не веришь? Посмотри асм после компиляции что у пиков что у авр что на компе...
Если при обьявление не было иницилизации , то в ячейках мусор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 23, 2008 23:00:52 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Telek писал(а):
ARV писал(а):
а протеус у вас легально купленный?!?! :shock:

а есть бесплатная/разумно стоящая для частного юзера замена?

VMLAB бесплатный и 4 Мб всего. В моей домашней страничке позырь.

Но PROTEUS - ИМХО великолепен !

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 07:03:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
dosikus писал(а):
ARV писал(а):
tych, в Си переменные инициализируются нулевым значением всегда, если не объявлено иное. это стандарт...


Увы компиляторы про это не знают .
Не веришь? Посмотри асм после компиляции что у пиков что у авр что на компе...
Если при обьявление не было иницилизации , то в ячейках мусор.
на Си работаю недавно - со 100% гарантией про компиляторы не скажу, но сомнения в справедливости только что вами сказанного есть. WinAVR мусор не создает, инициализирует все, как положено, нулями - можете посмотреть. Другие современные языки программирования тоже инициализируют нулями все: Delphi (кроме типа real), Java...

Я думаю, что если "компилятор об этом не знает", то это либо плохой компилятор, либо (что скорее всего), чего-то не знаете вы и принимаете за проблему корректное поведение.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 07:16:46 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Хоть кол на голове теши ...

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 07:23:05 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
ARV писал(а):
WinAVR мусор не создает

А какой создает ? Вы думаете в компилятор встроена функция создания мусора ?

Компиялтор отводит память под переменную, и если ей не присвоено значение то в это место он ни чего не записывает - поэтому в этих ячейках памяти лежит то что лежало.

ARV писал(а):
WinAVR инициализирует все, как положено, нулями - можете посмотреть.


Он может еще и пирожки выпекать параллельно - но к Си то это какое отношение имеет ?

ARV писал(а):
можете посмотреть.

Где ? Че проект не цепляется ? Или вы не знаете как его к посту прицепить ?

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 08:57:30 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Скачал и поставил WinAVR, сделал проектик - по АСМ листингу переменные размещены по адресам 62h 63h 60h - но в листинге я не вижу (я не спец по АСМу) где эти адреса обнуляются как грозился ARV. Я не утверждаю что там нет обнуления, просто прошу более опытных товарищей указать где оно.

Кстати в листинге путаница - в начале МЭЙН написан АСМ код, а потом строчка на Си которую онвыполнил, дальше уже все в обычном порядке - вначале Си а затем реализующий это АСМ.

Код:
void main(void) {
  5e:   83 e0          ldi   r24, 0x03   ; 3
  60:   80 93 62 00    sts   0x0062, r24

aba = 3;

top = 5;
  64:   85 e0          ldi   r24, 0x05   ; 5
  66:   80 93 63 00    sts   0x0063, r24


Вложения:
TEST WinAVR avr123.nm.ru.rar [46.76 KiB]
Скачиваний: 265

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 17:40:08 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2128
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18419
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
с листингом у WinAVR давние траблы - после прохода оптимизатора нарушается разделение на операторы - ассемблерный код получается более компактным и уже не делится на отдельные сишные операторы - поэтому в листинге выводится порой бог знает что... сейчас еще хорошо - в предыдущих версиях вы бы видели, что там выводилось... :) если отключить оптимизацию - то листинг немного красивеее, но все равно далек от идеала... вы еще поглядите на листинг цикла какого-нибудь :) там вообще сразу не поймешь, откуда что начинается и где заканчивается :)))

что касается инициализации - она происходит до входа в функцию main() - на этапе инициализации. если интересно - могу подробно рассказать (я это дело изучил весьма основательно), но гораздо проще запустить отладчик в AVR Studio и посмотреть в Watch - все переменные будут обнулены, если явно не проинициализированы.

tych, неужели вы и в самом деле думаете, что исполнение программы, написанной на Си начинается именно с main()?! а где тогда по-вашему стек устанавливается, вы же в main() не пишите инициализацию SP... выходит, есть еще какой-то код, предваряющий main() - вот там и происходит инициализация переменных, в том числе и обнуление по умолчанию. кстати, а присваивание проинициализированным переменным их значений вы нашли в своем листинге? ;)

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 24, 2008 18:40:52 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
ARV писал(а):
что касается инициализации - она происходит до входа в функцию main() - на этапе инициализации. если интересно - могу подробно рассказать (я это дело изучил весьма основательно)

Я и прошу от вас этого - показать асм код (в том листинге или (прошивке дизасм) что сделал WinAVR) который вписывает нули в адреса переменных.

ARV писал(а):
но гораздо проще запустить отладчик в AVR Studio и посмотреть в Watch - все переменные будут обнулены, если явно не проинициализированы.

Ваааааааааааще ОТЖИХХХХХ ! Корки отмачиваете не шуточные ! Откудаж в СИМУЛЯТОРЕ возьметься мусор в ячейках памяти ? Симулятор РОДИТ его чтоль ?

Вы полагаете что если код написать на CVAVR то в студии не будет нулей в переменных ? В листинге CVAVR есть специальный макрос очищающий всю оперативн память - не знаю задействует ли он его в каждой проге или нет.

В реальном процессоре "мусор" в ячейках памяти может остаться после ресета - не ужели НЕ ЯСНО ?

Если в симуляторе есть фича сохранять содержимое памяти при РЕСЕТЕ - то мусор КОНЕЧНО будет если до РЕСЕТа в эти ячейки вписать что-то не нулевое и если нет ЯВНОГО АСМ кода очищающего эти ячейки при старте программы.

ARV писал(а):
tych, неужели вы и в самом деле думаете, что исполнение программы, написанной на Си начинается именно с main()?!

Так оно и есть на самом деле - программа на Си начинает выполняться с мэйн обычно.

ARV писал(а):
а где тогда по-вашему стек устанавливается, вы же в main() не пишите инициализацию SP...

Там где компилятор "ЗАТОЧЕНЫЙ" ПОД АРХИТЕКТУРУ процессора накомпилит - видно в ЛИСТИНГЕ ЯВНО !

ARV писал(а):
выходит, есть еще какой-то код, предваряющий main()

Как вы догадались ? Наверно в листинге .lss - кторый я приложил выше - увидели ?

ARV писал(а):
вот там и происходит инициализация переменных, в том числе и обнуление по умолчанию.)

ПОКАЖИТЕ ГДЕ ???? Я ж выложил вам АСМ код в архиве и написал что я не спец по АСМ-у и попросил вам показать где нули вписываются !

ARV писал(а):
а присваивание проинициализированным переменным их значений вы нашли в своем листинге? ;)

Естественно НЕТ ! Опять дурачком прикидываетесь ???
WinAVR имдиЁт чтоль ? Он чтоль не видит что переменная не считвается в коде до записи в нее, нафигаж он будет писать в нее то что не требуется - ОПТИМИЗАЦИЯ то включена !

Вот если в проге добавить чтение из этой переменной, до записи в нее нового значения, то компилер ВЫНУЖДЕН будет вписать (запомнить) присвоеное ей при инициализации значение. Хотя если оптимизацию не выключить он может и схитрить - сразу вычислить значение результата в первое месте где в проге она появится.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 19, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y