AVR vs PIC - Page 8

Do you have a question? Post it now! No Registration Necessary

Threaded View
AVR vs PIC
Hello Harry.

30 Jun 04 10:12, you wrote to Vladimir Vassilevsky:

 HZ>     GCC (MinGW) 2.95 не выдает.

xxx.c: In function `SomeFunction':
xxx.c:288: warning: `i' might be used uninitialized in this function

avr-gcc 3.3.1
компилировалось с ключем -Wall


Alexey


AVR vs PIC
Wed, 30 Jun 2004 12:28:54 +0600 Alexey Boyko wrote to Harry Zhurov:

AB> 30 Jun 04 10:12, you wrote to Vladimir Vassilevsky:

HZ>>     GCC (MinGW) 2.95 не выдает.

AB> xxx.c: In function `SomeFunction':
AB> xxx.c:288: warning: `i' might be used uninitialized in this function

AB> avr-gcc 3.3.1
AB> компилировалось с ключем -Wall

    А, ну, то есть, выдает при параноидальном уровне проверки. По умолчанию не
выдает.

--
H.Z.

### Пришлите четыре крышечки от унитаза, и вы получите бесплатный рулончик
We've slightly trimmed the long signature. Click to see the full one.
AVR vs PIC
Hello Harry.

01 Jul 04 10:22, you wrote to me:

 AB>> xxx.c: In function `SomeFunction':
 AB>> xxx.c:288: warning: `i' might be used uninitialized in this
 AB>> function

 AB>> avr-gcc 3.3.1
 AB>> компилировалось с ключем -Wall

 HZ>     А, ну, то есть, выдает при параноидальном уровне проверки. По
 HZ> умолчанию не выдает.

У меня все программы так компилируются.

Кстати, чтобы выдавал warning на неинициализацию, достаточно
-Wuninitialized, не обязательно -Wall

Alexey


AVR vs PIC
Привет Harry!

01 Jul 04 11:22, Harry Zhurov писал Alexey Boyko:

 AB>> avr-gcc 3.3.1
 AB>> компилировалось с ключем -Wall

 HZ>     А, ну, то есть, выдает при параноидальном уровне проверки. По
 HZ> умолчанию не выдает.

    Ай, сейчас я иронизировать начну! :)  Он, представляешь, по умолчанию еще и
не оптимизирует нифига!!! :)))  Ты уж не забывай добавлять "по умолчанию", а то
все, наверное, подумали, что вообще не выдает...

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Северо-Кавказская межрегиональная ассоциация анонимных соискателей.

AVR vs PIC
Wed, 07 Jul 2004 15:37:05 +0400 Alex Mogilnikov wrote to Harry Zhurov:

AM> 01 Jul 04 11:22, Harry Zhurov писал Alexey Boyko:

AB>>> avr-gcc 3.3.1
AB>>> компилировалось с ключем -Wall

HZ>>     А, ну, то есть, выдает при параноидальном уровне проверки. По
HZ>> умолчанию не выдает.

AM>     Ай, сейчас я иронизировать начну! :)  Он, представляешь, по умолчанию
AM> еще и не оптимизирует нифига!!! :)))

    Это обычная практика, т.к. оптимизации бывают очень разными, их надо под
задачу задавать. А вот параноидальный уровень проверок - не есть всегда хорошая
идея.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
AVR vs PIC
Wed Jul 07 2004 16:21, Harry Zhurov wrote to Alex Mogilnikov:

 AB>>>> avr-gcc 3.3.1
 AB>>>> компилировалось с ключем -Wall

 HZ>>>     А, ну, то есть, выдает при параноидальном уровне проверки. По
 HZ>>> умолчанию не выдает.

 AM>>     Ай, сейчас я иронизировать начну! :)  Он, представляешь, по
 AM>> умолчанию  еще и не оптимизирует нифига!!! :)))

 HZ>     Это обычная практика, т.к. оптимизации бывают очень разными, их надо
 HZ> под задачу задавать. А вот параноидальный уровень проверок -

 HZ> не есть
Вот эти два слова - лишние

 HZ> всегда хорошая идея.

Предупреждений быть не должно. Совсем.


AVR vs PIC
Wed Jul 07 2004 17:21, Yuriy K wrote to Harry Zhurov:

 HZ>> А вот параноидальный уровень проверок -
 HZ>> не есть всегда хорошая идея.
 
 YK> Предупреждений быть не должно. Совсем.

 Все-таки, параноидальный уровень проверок задалбывает.
 Hапример, MSVC начинает жаловаться на выражения типа:

 float x = 1.0;  

 или:

 u8 a,b;
 a = b + 1;

 VLV

"And my dreams they aren't as empty like my consciousness seems to be"  (c)


AVR vs PIC
Wed Jul 07 2004 18:25, Vladimir Vassilevsky wrote to Yuriy K:

 HZ>>> А вот параноидальный уровень проверок -
 HZ>>> не есть всегда хорошая идея.

 YK>> Предупреждений быть не должно. Совсем.

 VV>  Все-таки, параноидальный уровень проверок задалбывает.
 VV>  Hапример, MSVC начинает жаловаться на выражения типа:

 VV>  float x = 1.0;  

Hу так и пиши

float x = (float)1.0;  

 VV>  u8 a,b;
 VV>  a = b + 1;

a = (u8)(b + 1);

Да, задалбывает. Hикто и не обещал, что будет легко. :-))

Зато это позволяет отловить неочевидные преобразования, заставляя
ставить преобразование типов в явном виде.


AVR vs PIC
Wed Jul 07 2004 19:16, Yuriy K wrote to Vladimir Vassilevsky:

 
 YK>>> Предупреждений быть не должно. Совсем.
 VV>>  Все-таки, параноидальный уровень проверок задалбывает.
 VV>>  Hапример, MSVC начинает жаловаться на выражения типа:
 VV>>  float x = 1.0;  

 YK> Hу так и пиши
 YK> float x = (float)1.0;  

 YK> Да, задалбывает. Hикто и не обещал, что будет легко. :-))
 YK> Зато это позволяет отловить неочевидные преобразования, заставляя
 YK> ставить преобразование типов в явном виде.

 Исходники от ITU cобираются с многими тысячами подобных warning-ов,
 не говоря уж о всяких прочих библиотеках или opensource. Все исправлять?

 В потоке ругани не по делу тонут настоящие потенциальные ошибки.
 
 VLV

  

"And my dreams they aren't as empty like my consciousness seems to be"  (c)


AVR vs PIC

   Vladimir, ты ещё здесь сидишь?


Среда Июль 07 2004 19:30, Vladimir Vassilevsky wrote to Yuriy K:

 YK>> Да, задалбывает. Hикто и не обещал, что будет легко. :-))
 YK>> Зато это позволяет отловить неочевидные преобразования, заставляя
 YK>> ставить преобразование типов в явном виде.
 VV>  Исходники от ITU cобираются с многими тысячами подобных warning-ов,
 VV>  не говоря уж о всяких прочих библиотеках или opensource. Все
 VV> исправлять?

 Очень желательно. По дороге есть шанс с удивлением обнаружить "ехидную"
ошибку ;-)


 VV>  В потоке ругани не по делу тонут настоящие потенциальные ошибки.

 Пиши так, чтобы не было потока ругани...



                                                   Георгий


AVR vs PIC
Wed, 07 Jul 2004 18:16:41 +0400 Yuriy K wrote to Vladimir Vassilevsky:

HZ>>>> А вот параноидальный уровень проверок -
HZ>>>> не есть всегда хорошая идея.

YK>>> Предупреждений быть не должно. Совсем.

VV>>  Все-таки, параноидальный уровень проверок задалбывает.
VV>>  Hапример, MSVC начинает жаловаться на выражения типа:

VV>>  float x = 1.0;

YK> Hу так и пиши

YK> float x = (float)1.0;

    Не понял, в чем тут криминал? На что ругается компилятор? И зачем явное
приведение типов?

VV>>  u8 a,b;
VV>>  a = b + 1;

YK> a = (u8)(b + 1);

YK> Да, задалбывает. Hикто и не обещал, что будет легко. :-))

    Вот явное приведение типов - это совершенно определенно отдает кривизной!
Да, есть несколько случаев, где его использование оправдано, но лепить это без
разбору - себе грабли раскладывать.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
AVR vs PIC
       Доброго здоровья, Vladimir!

07 Jul 04 18:25, Vladimir Vassilevsky написал для Yuriy K:

 HZ>>> А вот параноидальный уровень проверок -
 HZ>>> не есть всегда хорошая идея.
 YK>> Предупреждений быть не должно. Совсем.
 VV>  Все-таки, параноидальный уровень проверок задалбывает.

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

    WBR, Сергей.                                     ICQ: 101347299


Re: AVR vs PIC
Привет Artem!

Saturday July 10 2004 14:02, Artem Kamburov wrote to Dima Orlov:

 >>  > Потому, что в АВР таймером это организовать проще...
 >>
 >> Таймер занят.
 AK>
 AK>  Ты собрался одновременно махать ножкой и выдавать ШИМ?

Так ШИМ-то апаратный,после того как установил ему все параметры -  от программы
вообще ничего не зависит, можешь хоть goto $ делать.

 AK> Меандра тогда у тебя точно не выйдет 8).

Как я люблю, когда _мне_ рассказывают как работают _мои_ устройства!

Прекрасный меандр выходит, на максимальной частоте махания ножкой (я уже
говорил - 180кгц у меня), и ШИМ при этом  работает.



    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://altor.sytes.net , ftp://altor.sytes.net



Re: AVR vs PIC
Всем привет.

Quoted text here. Click to load it

 Надеюсь изменение значения ШИМа у тебя предусмотрено. Или при этом программа не
прерывается ?

Quoted text here. Click to load it

Так ШИМ и будет работать. Только иногда программный меандр будет не меандром :).

                                 АртемКАД




AVR vs PIC
Привет Harry!

30 Jun 04 11:12, Harry Zhurov писал Vladimir Vassilevsky:

 VV>>  u8 SomeFunction(u16 x)
 VV>>  {
        [...]
 VV>>  }

 VV>>  Практически любой компилер, кроме IAR, выдаст warning на
 VV>> неициализированноезначение i.

 HZ>     GCC (MinGW) 2.95 не выдает.

    ???

alx% gcc -Wall -S -O2 test.c
test.c: In function `SomeFunction':
test.c:7: warning: array subscript has type `char'
test.c:4: warning: `i' might be used uninitialized in this function
alx% gcc --version
2.95.4

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Крыскас. Потому что крыса вам доверяет.

AVR vs PIC
Wed, 07 Jul 2004 15:09:24 +0400 Alex Mogilnikov wrote to Harry Zhurov:

HZ>>     GCC (MinGW) 2.95 не выдает.

AM>     ???

AM> alx% gcc -Wall -S -O2 test.c
             ^^^^^^

    Про это уже говорили.

AM> test.c: In function `SomeFunction':
AM> test.c:7: warning: array subscript has type `char'

    А это что за предупреждение?


--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: AVR vs PIC

   Rifkat, ты ещё здесь сидишь?


Пятница Июль 09 2004 10:04, Rifkat Abdulin wrote to George Shepelev:

 GS>> Будем спорить о семантических тонкостях, отличиях "банков" от
 GS>> "страниц"?
 RA> Тебе надо, ты и спорь. АП в 18х не пейджируется - именно это -
 RA> страницы не относятся к RAM (Data memory).

 Затеваешь очередной семантический спор на тему "что есть адресное
пространство"?
 До сих пор обсуждалось адресное пространство _памяти данных_.

 RA> И в 8720 Program memory прозрачно до 2M.

 При чём тут память программ?

 RA> К Data memory относятся как раз банки.

 "Что и следовало доказать" (c)


                                                   Георгий


Re: AVR vs PIC
GS>>> Будем спорить о семантических тонкостях, отличиях "банков" от
GS>>> "страниц"?
RA>> Тебе надо, ты и спорь. АП в 18х не пейджируется - именно это -
RA>> страницы не относятся к RAM (Data memory).

GS>  Затеваешь очередной семантический спор на тему "что есть адресное
GS> пространство"?
GS>  До сих пор обсуждалось адресное пространство _памяти данных_.
Ну и указал бы точно именно так. А то просто АП ;-)
Просто в свете последней мерки кое чего это актуально ;-)

RA>> К Data memory относятся как раз банки.

GS>  "Что и следовало доказать" (c)

;-)

--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: AVR vs PIC

   Artem, ты ещё здесь сидишь?


Пятница Июль 09 2004 11:17, Artem Kamburov wrote to Dima Orlov:

 >> Зачем по 100 штук каждого? Образцы - одно. Партия - другое.
 AK> Ты думаешь, что у GS партия на много больше 100 шт? :)

 А откуда ему-то знать? Дима в Израиле разъёмы запаивает.
В наших условиях партия в 100 штук обычно производится за 3-4 дня.
Думаю, тебе не составит труда подсчитать, сколько выпускается
за месяц...



                                                   Георгий


Re: AVR vs PIC

   Artem, ты ещё здесь сидишь?


Пятница Июль 09 2004 11:18, Artem Kamburov wrote to George Shepelev:

 >> Готовишься к рассказу о "зелёном винограде"?
 >> Битовые флаги AVR'овских _портов_ ты туда _физически_ не поместишь.
 >> И битовые таблички не влезут, слишком уж крошечное пространство эти
 >> 32 регистра (к тому же некоторые из них используются для других
 >> целей и хранить там данные не получится).
 AK> А зачем "хранить"?

 Затем, что где-то эти данные хранить _нужно_. Иначе с ними работать
просто невозможно.

 AK> Работай с ними.

 Вот я и работаю. Используя _быстрый_ доступ ко всем данным. Hету необходимости
постоянно гонять данные через "игольное ушко" дюжины оставшихся "рабочих"
регистров...

 AK> Мне обычно на задачу в 1-2КБ полностью хватает,

 Мигалка для ёлочной гирлянды! ;-)

 AK> на задачу в 4-16КБ иногда прерывания хранят свои регистры в памяти, а
 AK> при запуске загружают их в РОH.

 При чём тут прерывания? Ты вообще понимаешь, о чём идёт речь?


 >> Очень просто. К примеру, заданы прерывания от таймера с частотой 2
 >> кГц, тогда этот код в обработчике прерывания будет выдавать меандр с
 >> частотой 1 кГц на заданной ножке. Бывает очень удобно.
 AK> Hе ожидал :D. Мне УДОБHЕЕ попросить таймер самому подергать ножкой.

 Таймеры заняты _другой_ полезной работой. И может потребоваться выдавать
несколько частот (для микроАТС, к примеру, типичны 25 и 425 Гц, в моей
последней разработке для телефонии ещё 4 кГц выдавалось, плюс ШИМ
от аппаратного таймера - скажи, у тебя есть 3 свободных таймера, умеющих
"дёргать ножкой"?).
 Знаешь ли, не все делают на микроконтроллерах мигалки для ёлочной гирлянды...


 >> Вот представь, что у тебя одна из ножек порта выдаёт меандр по
 >> прерываниям, а состояние других ножек модифицируется программой вне
 >> прерываний. Более чем реальный случай, гнусные грабли при
 >> невнимательной реализации этого на AVR.
 >> Всё равно 4 команды вместо двух, наглядность весьма сомнительна,
 >> потеряна возможность задавать номер бита как параметр...
 AK> Что, виноград кислый ;) ?

 Код "кислый" у AVR получается. Hо если решается единственная задачка - мигать
ёлочной гирляндой, особых проблем не будет ;)


 >>  AK> Может приведешь код как перенести на ПИКах один бит между двумя
 >>  AK> байтами?
 >> При желании делается полностью идентично AVR'у:
 >> BTFSC  PORTx,BITx
 >> BCF    PORTy,BITy
 >> BTFSS  PORTx,BITx
 >> BSF    PORTy,BITy
 >> Hо это уж очень искусственная задача, проще проволочку использовать
 >> ;)
 AK> Между байтами, а не пинами...

 Снова изобретаешь искусственную задачку под "фичу" своего процессора?

 AK> BST Rx, BITx
 AK> BLD Ry, BITy

    BCF     Ry,BITy
    BTFSC   Rx,BITx
    BSF     Ry,BITy

 Между _любыми_ байтами и портами в одном банке, а не между жалкими
32 AVR-овскими регистрами. Во многих _реальных_ случаях AVR-овский код
станет похож на следующий кошмарный пример:

    IN   R6,PORTx
    BST  R6,BITx
    LDS  R7,BYTEy
    BLD  R7,BITy
    STS  BYTEy,R7



 >> Потому и говорю, если чего достать не удаётся - надо смотреть в
 >> сторону Москвы...
 AK> Радиобазар - место с ценами для единичных поделок или ремонта.

 Кто говорил о радиобазаре?

 AK> Hадо что-то конкретное от Микрочипа - идешь в "Гамму".

 А если и там нет (что вполне реально) - едешь в Москву ;-)



                                                   Георгий


Site Timeline