MPLAB C18 EEPROM initialization

Sep 02, 2009 358 Replies

Sat Sep 12 2009 13:03, Andrey Arnold wrote to Kirill Frolov:

AA>>> набор битов. А в самом байте искать смысла не нужно. KF>> Байт -- это uint8_t. А в C есть встроенный тип char. Который ни разу KF>> не байт. AA> А мне плевать. AA> В мой PC не встроены AVRы.

Hу и я не вижу смысла ни спорить, ни отвечать мне. Хотя в таком случае, я вот так намекну, Бейсик лучше, или Паскаль. Да хоть Java.

AA> Заодно и uint8_t понимает далеко не каждый компилятор, AA> а вот мой BYTE поймёт каждый, поскольку "самодельный хидер" AA> всегда с собой...

Самодельный inttypes.h тоже никто не запрещает. Если штатный отсутствует.

KF>> элементарных типов -- признак говнокода. AA> Hу вот и не пиши говнокод с этими самодельными uintx_t.

Hе пиши ответов в конференцию.

KF>> Хотя бы потому, что такой код нельзя повторно использовать (Ctrl-C, KF>> Ctrl-V) где-либо ещё. AA> С чего бы это?

Банально не соберётся. А при подсовывании самодельного BYTE ещё выйдет разнообразнейшая лажа, от платформы сильно зависит. Хотя в рамках "мой AVR" это не грозит. А тот же PIC может уже доставить, не с int'ами, а вот с указателями может, да и x51 тоже. С BYTE сложно вляпаться, хотя вот припоминается, есть сказочные случаи с CHAR_BIT где-то около 32-х.

[ZX]

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to All on Sun, 13 Sep 2009

18:39:39 +0000 (UTC):

KF>>> Запись 0b00010 HЕ ЯВЛЯЕТСЯ КОРРЕКТHОЙ для языка C, не DO>> Это попросто не возможно потому, что на PC нт таких регистров.

KF> В мире не существует ничего кроме пиков... спорить не вижу KF> смысла.

В мире существует много всего, но обсуждались конкретно PIC'и (ну и близкие к ним контроллеры).

dima

formatting link

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to All on Sun, 13 Sep 2009

18:54:15 +0000 (UTC):

KF> Sat Sep 12 2009 12:02, Andrey Arnold wrote to Nickita A Startcev:

AA>> Один мой коллега забивал(ет - его переманила почти двойной AA>> зарплатой другая фирма) длину переменой и её знаковость, прямо в AA>> имя переменной. AA>> У него впереди у имени переменной, или там, функции, стоит набор AA>> из комбинаций букв bmnu и ещё каких-то... (я сейчас дома и не могу AA>> посмотреть на его исходники) для него удобно именно это... а

KF> Вот это я и имею ввиду, когда говорю, что хорошую идею венгерской KF> нотации извратили донельзя и превратили в говнокод.

Говнокод - это тот код, который не работает. Тот, который работает - не говнокод.

KF> Тип -- он и так известен, да и больше того -- HЕ ВАЖЕH вовсе.

Кому-то и для чего-то может быть и не важен. А можети не быть.

AA>> Это сказано безотносительно к тому, что я и сам пользуюсь теми же AA>> u16, и вовсе не потому, что кому-то в таком случае, что-то "видно AA>> сразу", а потому, что запись получается короче.

KF> u16 может либо оказаться реально uint32_t, что вызовет побочные KF> эффекты и глюки, либо приводить к генерации неэффективного кода

Это как это он вдруг может оказаться? Hезаметно разрядность железа поменялась?

KF> . Hу если в мире нет ничего кроме pic18, или там msp430 -- беспокоиться

В мире есть много чего.

KF> нечего... но в общем случае это говнокод. Хотя бы потому, что для KF> неспециальных случаев (unsigned) int -- KF> всегда не менее эффективен

Если u16 и определен как unsigned int он не менее и не более, а в точности так же эффективен.

KF> и заведомо не имеет аккуратно подложенных граблей (просто потому, что KF> программист знает, что его разрядность не фиксирована).

Разрядность как раз фиксирована.

dima

formatting link

Sat Sep 12 2009 17:06, Nickita A Startcev wrote to Andrey Arnold:

NAS> Чужая душа - потёмки. NAS> А я люблю рекурсию и кучи мелких функций. А некоторые любят хранить

Рекурсия в области эхотага на мелких 8-битных CPU имеет массу проблем. Особенно радует qsort() у hitech. Пришлось переписать... А мелкие функции -- не всё так просто. Ключевое слово -- ОБЛАСТЬ ВИДИМОСТИ. GCC с вложенными функциями конечно позволяет выкрутится. А в общем случае -- либо глобальные переменные (которые сами по себе ещё то зло), либо указатели на структуру и жутко громоздкий и неэффективный код, либо таки громоздкие функции. Тем более, собственно серьёзных причин делать функцию короткой -- нет, если код писать грамотно и не увлекаться goto где не нужно (посмотрев на труды одного деятеля, я таки соглашаюсь с мыслью, что goto -- вреден, ибо граната в руках обезьяны), все современные компиляторы позволяют разграничить видимость внутри блоков (имеется ввиду { вот таких }).

Да, на счёт goto. Иногда таки полезен:

formatting link
-- "Иначе вариант с явными goto будет быстрее." -- и действительно существенно быстрее. Hу а классика жанра -- выход из нескольких вложенных циклов, альтернатива -- завернуть цикл в функцию, но опять же проблема области видимости, решаемая только в GCC.

[ZX]

Sun Sep 13 2009 11:37, Andrey Arnold wrote to Nickita A Startcev:

AA> Даёшь, описание: "callback" - это очень просто!?

Я не понимаю смысла слова callback вообще. Под этим можно понимать что угодно. Корректно было бы, наверное, говорить об аргументах-функциях. Классический пример -- qsort тот же. В perl вместо функции можно блок кода подсунуть. По-сути это такое приближение к виртуальным функциям в C++, когда базовый класс вроде один, а методы в каждом конкретном случае свои. Где указателей нет, там и выкручиваются объектами унаследованными от, или там с интерфейсом такого-то типа...

[ZX]

Sun Sep 13 2009 13:38, Nickita A Startcev wrote to Alex Mogilnikov:

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

[ZX]

Hello Andrey.

Sun Sep 13 2009 10:37, Andrey Arnold wrote to Nickita A Startcev:

AA> þÔÏÂÙ ÐÏÌØÚÏ×ÁÔØÓÑ, ÎÁÄÏ ÚÎÁÔØ, Ó ÞÅÍ ÜÔÏ ÅÄÑÔ... ÜÔÏ ÐÒÏÓÔÏ × ÄÅÔÓÔ×Å AA> ÔÅÂÑ ÎÁÕÞÉÌÉ, ÞÔÏ ÞÉÓÌÁ ÎÁÄÏ ÐÉÓÁÔØ ÓÔÁÒÛÉÍ ÒÁÚÒÑÄÏÍ ÓÌÅ×Á... ÈÏÔÑ ÜÔÏ AA> ÎÅ ÍÅÛÁÅÔ ÔÅÂÅ ÒÁÓÐÏÌÁÇÁÔØ ÄÁÎÎÙÅ Õ ËÏÔÏÒÙÈ ÁÄÒÅÓÁ ×ÙÛÅ, ÓÐÒÁ×Á - ×ÏÔ AA> ÔÙ É ÕÍÎÙÊ ÔÁËÏÊ... HÅÕÖÅÌÉ "ÐÏÌØÚÏ×ÁÔÅÌØ" ÎÅ ÞÕÅÛØ ÏÐÏÊ, ÛÏ AA> ÓÏ×ÒÅÍÅÎÎÁÑ ÚÁÐÉÓØ ÞÉÓÅÌ ÄÌÑ ÐÉÛÕÝÉÈ ÓÌÅ×Á ÎÁÐÒÁ×Ï ÎÅÌÏÇÉÞÎÁÑ?

HÏ ÞÉÓÌÁ ÖÅ Åݣ É ÞÉÔÁÔØ ÎÁÄÏ. :)

Dimmy.

ðÒÉ×ÅÔ, Alex !

13 Sep 09 , 21:37 Alex Mogilnikov ÐÉÓÁÌ Ë Nickita A Startcev:

AM> üÔÏ ÅÇÏ ÌÉÞÎÙÅ ÐÒÏÂÌÅÍÙ. ëÔÏ ÅÇÏ ÚÁÓÔÁ×ÌÑÅÔ ÐÏÒÎÕÛÎÏ ÏÐÔÉÍÉÚÉÒÏ×ÁÔØ? AM> ðÕÓÔØ ÏÐÔÉÍÉÚÉÒÕÅÔ ÎÅÐÏÒÎÕÛÎÏ. :)

á ÍÏÖÅÔ É ÎÅ ÌÉÞÎÙÅ, Á ËÌÁÓÓÏ×ÙÅ. :) ëÔÏ ÅÇÏ ÚÎÁÅÔ.

AM> íÙ ×ÓÅ ÅÝÅ ÇÏ×ÏÒÉÍ Ï ÏÐÅÒÁÃÉÑÈ Ó ÍÁÓÓÏÊ, ×ÙÒÁÖÅÎÎÏÊ × ÒÁÚÎÙÈ AM> ÅÄÉÎÉÃÁÈ?

HÅ. ñ ÕÖÅ ÐÅÒÅÓËÏÞÉÌ ÎÁ ÎÅÄÏÓÔÁÔËÉ ó/ó++ ×ÏÏÂÝÅ. :\

AM> ÷Ï-ÐÅÒ×ÙÈ, ÄÌÑ ÐÏÄÏÂÎÙÈ ÓÌÕÞÁÅ× ÓÕÝÅÓÔ×ÕÀÔ ÛÁÂÌÏÎÙ, ÏÎÉ ÐÏÍÏÇÁÀÔ AM> ÓÉÌØÎÏ ÓÏËÒÁÔÉÔØ ÐÉÓÁÎÉÎÕ.

ÄÁ, ÎÏ Õ ÎÉÈ ÅÓÔØ Ó×ÏÉ ÐÒÏÂÌÅÍÙ. HÁÐÒÉÍÅÒ, ËÒÁÊÎÅ ÐÒÏÓÔÒÁÎÎÙÅ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ. äÁ É Ó ÏÐÔÉÍÉÚÁÃÉÅÊ ÔÁÍ ÎÅ ×ÓÅÇÄÁ ×ӣ ÏË.

AM> ÷-ÔÒÅÔØÉÈ, éíèï ÅÓÌÉ × ÐÒÏÇÒÁÍÍÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÍÁÓÓÙ ÉÓÐÏÌØÚÕÅÔÓÑ 9 AM> ËÏÍÂÉÎÁÃÉÊ "ÔÉÐ"-"ÚÎÁËÏ×ÏÓÔØ"-"ÅÄÉÎÉÃÁ ÉÚÍÅÒÅÎÉÑ", ÜÔÏ ÎÁ×ÏÄÉÔ ÎÁ AM> ÍÙÓÌØ Ï... ËÁË ÂÙ ÜÔÏ ÐÏÍÑÇÞÅ ÓËÁÚÁÔØ... ÎÅËÁÞÅÓÔ×ÅÎÎÏÍ ÐÒÏÅËÔÉÒÏ×ÁÎÉÉ AM> ÐÒÏÇÒÁÍÍÙ. :)

:) ÂÙ×ÁÀÔ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ ÎÅ × ÔÅÈ ÐÏÐÕÇÁÑÈ É ÐÅÒÅ×ÏÄ ÜÔÉÈ ÐÏÐÕÇÁÅ× × ËÁËÉÅ-ÔÏ ÄÒÕÇÉÅ. HÁÐÒÉÍÅÒ, × ÎÅËÏÔÏÒÙÈ ÍÅÓÔÁÈ ÅÍËÏÓÔØ ËÏÎØÄÅÎÓÁÔÏÒÁ ÍÏÖÅÔ ÂÙÔØ ×ÙÒÁÖÅÎÁ × ÔÁËÔÁÈ ÐÒÏÃÅÓÓÏÒÁ, Á × ÄÒÕÇÉÈ ÅÅ ÎÅÐÌÏÈÏ ÂÙ ÐÅÒÅ×ÅÓÔÉ × (ÐÉËÏ)ÆÁÒÁÄÙ.

AM> HÅ ×ÉÖÕ ÓÕÝÅÓÔ×ÅÎÎÙÈ ÒÁÚÌÉÞÉÊ ÍÅÖÄÕ

AM> const int mass = 10;

AM> É

AM> const Kg mass = 10;

á ×ÏÔ const Kg mass1 = 10; const Kg mass2 = 10 + mass1; ÕÖÅ ÍÏÖÅÔ É ÎÅ ÐÒÏËÁÔÉÔØ × Ó×ÑÚÉ Ó ÏÔÓÕÔÓÔ×ÉÅÍ Õ ÄÅÓÑÔËÉ ÍÅÔÏÄÁ ÄÌÑ ÐÒÉ×ÅÄÅÎÉÑ Ë ËÉÌÏÇÒÁÍÍÁÍ.

AM> óÏÂÓÔ×ÅÎÎÏ, ÞÔÏ Ñ ÔÅÂÑ ÕÇÏ×ÁÒÉ×ÁÀ? ôÙ ÈÏÔÅÌ ÐÏÓÍÏÔÒÅÔØ ÎÁ ÑÚÙË, AM> ËÏÔÏÒÙÊ ÜÔÏ ÍÏÖÅÔ - ÓÍÏÔÒÉ. HÒÁ×ÉÔÓÑ - ÐÏÌØÚÕÊÓÑ. HÅ ÎÒÁ×ÉÔÓÑ - ÎÅ AM> ÐÏÌØÚÕÊÓÑ... :)

ïÎ ÍÏÖÅÔ, ÎÏ ÓÌÅÇËÁ ÞÅÒÅÚÖÏÐÎÏ. åÓÌÉ ÄÉÓËÕÓÓÉÑ ÎÅÉÎÔÅÒÅÓÎÁ - ÍÏÇÉ É Ó×ÅÒÎÕÔØ ÄÉÓËÕÓÓÉÀ ÎÁ ÔÅÍÕ "ËÁËÉÅ ÇÒÁÂÌÉ ÇÏÔÏ×ÉÔ ÎÁÍ ÑÚÙË". :)

AM> òÅÞØ Ï ÁÐÐÁÒÁÔÎÏÍ ÉÓËÌÀÞÅÎÉÉ? åÓÌÉ ÄÁ, ÔÏ ÐÒÉ ÞÅÍ ÔÕÔ ÑÚÙË AM> ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ?

ðÒÉ ÎÁÓÔÒÏÊËÁÈ. ðÒÉ ÐÒÏ×ÅÒËÅ ÆÌÁÇÁ ÐÅÒÅÐÏÌÎÅÎÉÑ. ðÒÉ ÎÅËÏÅÍ ÐÏÄÏÂÉÉ ÓÔÁÎÄÁÒÔÁ ÎÁ ÜÔÕ ÔÅÍÕ.

AM> ðÏÇÏÄÉ-ËÁ. HÅ ÓÏ×ÓÅÍ ÐÏÎÉÍÁÀ, ÞÔÏ ÔÙ ÉÍÅÅÛØ × ×ÉÄÕ. åÓÌÉ ÒÅÚÕÌØÔÁÔ AM> ÏÐÅÒÁÃÉÉ ÐÒÅÄÓÔÁ×ÉÍ ÔÉÐÏÍ ÒÅÚÕÌØÔÁÔÁ, ÎÉÞÅÇÏ ÐÏÔÅÒÑÎÏ ÎÅ ÂÕÄÅÔ. åÓÌÉ AM> ÎÅÐÒÅÄÓÔÁ×ÉÍ - ÂÕÄÅÔ. ÷ÓÅ ÏÐÒÅÄÅÌÑÅÔÓÑ ÔÉÐÏÍ ÒÅÚÕÌØÔÁÔÁ. ÷ ÄÒÕÇÉÈ AM> ÑÚÙËÁÈ ÎÅ ÔÁË? :)

óÔÏÐ. éÎÏÇÄÁ É ÕÉÎÔ32*ÕÉÎÔ32 ÌÅÚÅÔ × ÉÎÔ8, Á ÉÎÏÇÄÁ É ÎÅ ÌÅÚÅÔ. ÷ ÏÂÝÅÍ ÓÌÕÞÁÅ ÎÁÄÏ ÂÙ ËÁË-ÔÏ ÒÁÄÏ×ÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÓÏÏÂÅÎÉÑÍÉ Ï ÔÏÍ, ÞÔÏ ÔÕÔ ÍÏÖÅÔ É ÎÅ ×ÌÅÚÔØ. á ÓÏ×ÒÅÍÅÎÎÙÅ ËÏÍÐÉÌÑÔÏÒÙ ÇÌÏÔÁÀÔ ÄÁÖÅ ÔÁËÏÅ: uint64_t foo = 1024*1024*1024*5; ÐÒÉޣÍ ÓÐÏËÏÊÎÏ ËÌÁÄÕÔ × ÐÅÒÅÍÅÎÎÕÀ ÎÅ 5, Á 1 ÇÉÇ.

AM> óÔÒÁÛÎÏ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÞÅÍ?

ÐÏ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÀ Ó óÉ, ÐÏ ÏÂߣÍÕ ÐÉÓÁÎÉÎÙ - Ó ÁÄÏÊ ËÁËÏÊ-ÎÉÂÕÄØ ÉÌÉ ÏËÁÍÌÏÍ.

AM> ó ÑÚÙËÏÍ ÓÉ? ÷ ÑÚÙËÅ C ÐÉÓÁÎÉÎÙ ËÁË ÒÁÚ AM> ÂÏÌØÛÅ - ÔÙ ×ÓÅ runtime ÐÒÏ×ÅÒËÉ ÄÏÌÖÅÎ ÐÉÓÁÔØ ÓÁÍ, × ÔÏ ×ÒÅÍÑ ËÁË Ó AM> C++ ÄÏÓÔÁÔÏÞÎÏ ÎÁÐÉÓÁÔØ ÐÒÏ×ÅÒËÕ ÏÄÉÎ ÒÁÚ × ÒÅÁÌÉÚÁÃÉÉ ÏÐÅÒÁÔÏÒÁ.

÷ ÓÑÈ ÜÔÏ ÔÏÖÅ ÍÏÖÎÏ ÏÂÅÒÎÕÔØ × ÆÕÎËÃÉÀ, Á ÅÓÌÉ ÂÒÏÓÁÔØ ÉÓËÌÀÞÅÎÉÑ - ÔÏ ÎÅÚÁÂÙÔØ ÔÒÕ/ËÁÞ ÇÄÅ-ÔÏ ×ÙÛÅ.

AM> ðÏ AM> ÐÏ×ÏÄÕ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÑ - ÓÏ×ÅÒÛÅÎÎÏ ÏÄÉÎÁËÏ×Ï, ÉÂÏ ÐÒÏ×ÅÒËÁ ×ÙÐÏÌÎÑÅÔÓÑ AM> ÏÄÎÉÍ É ÔÅÍ ÖÅ ÍÁÛÉÎÎÙÍ ËÏÄÏÍ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, ËÁË É ÎÁ ËÁËÏÍ ÑÚÙËÅ AM> ÏÎÁ ÏÐÉÓÁÎÁ.

ÎÅÎÅÎÅ. × ÓÔÁÎÄÁÒÔÅ ÑÚÙËÁ ó/ó++ ÎÅÔ ÐÏÎÑÔÉÑ ÐÅÒÅÐÏÌÎÅÎÉÑ, ÔÏÞÎÅÅ, ÆÌÁÇÁ ÐÅÒÅÎÏÓÁ. ÷ÏÔ ËÏÍÐÉÌÑÔÏÒ É ÎÅ ÄÁÅÔ ÒÕÞÅË ÐÏÓÍÏÔÒÅÔØ ÜÔÏÔ ÆÌÁÇ ÓÒÁÚÕ ÐÏÓÌÅ ÐÏÄÏÚÒÉÔÅÌØÎÏÊ ÏÐÅÒÁÃÉÉ.

AM> HÁÄÅÀÓØ, ÔÙ ÎÅ ÒÁÓÓÍÁÔÒÉ×ÁÅÛØ ÓÌÕÞÁÊ, ËÏÇÄÁ ÏÄÉÎ AM> ËÏÍÐÉÌÑÔÏÒ ÒÁÂÏÔÁÅÔ ÈÕÖÅ ÞÅÍ ÄÒÕÇÏÊ... :)

HÅ. ôÁËÕÀ ÔÒÉ×ÉÁÌØÝÉÎÕ ÎÅ ÓÍÏÔÒÀ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÒÅÄËÉÅ ×ÙÈÏÄÎÙÅ ÏÂÈÏÄÑÔÓÑ ÂÅÚ ÐÁÄÅÎÉÑ ËÁËÏÇÏ-ÎÉÂÕÄØ ÒÅÇÉÏÎÁÌØÎÏÇÏ ÈÁÂÁ

Привет, Kirill !

13 Sep 09 , 22:54 Kirill Frolov писал к All:

KF> int16_t есть в ISO. Другое дело, что он, в общем-то скорей не нужен. KF> Из имеющихся там типов полезными с ходу признать могу только KF> int_fast*_t, int_least*_t и sig_atomic_t. Поддержка типов с конкретно KF> заданной шириной (например int16_t) -- большой вопрос конкретному KF> компилятору и CPU, и это скорей зло, нужное лишь в исключительных KF> случаях. Вообще C он содержит много возможности "прострелить себе KF> ногу", чем многие злоупотребляют, также и с самодельными типами.

Кстати, напомните плиз, а как эти типы выводить на печать и вводить с консоли? В смысле, что пихать в параметр для printf/scanf ( %i? %li? %lli? %llli?) или к какому из неизвестноширинных типов кастить?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Шагающий авианосец

ðÒÉ×ÅÔ, Kirill !

13 Sep 09 , 22:55 Kirill Frolov ÐÉÓÁÌ Ë Andrey Arnold:

NAS>>>> TCCR0 = _BV(CS2) | _BV(FOC); NAS>>>> ÅÝÅ ËÏÒÏÞÅ É ÎÁÇÌÑÄÎÅÅ. :) KF>>> TCCR0 = 1<<CS2 | 1<<FOC; AA>> èÒÅÎ ÒÅÄØËÉ ÎÅ ÓÌÁÝÅ...

KF> (ÍÁÓËÉ ÎÅÕÄÏÂÎÙ ÉÎÏÇÄÁ, Á ÔÏ ÉÎÁÞÅ TCCR0=CS2|FOC KF> ÐÒÏÝÅ)

á ×ÏÔ ÐÏ ÐÏ×ÏÄÕ ÍÁÓÏË ÉÎÔÅÒÅÓÎÏ ÂÙÌÏ ÂÙ Õ×ÉÄÅÔØ ËÏÍÍÅÎÔÁÒÉÉ. ëÓÔÁÔÉ, Ï ÑÚÙËÅ É ÔÉÐÁÈ. ëÏÍÐÉÌÑÔÏÒ ×ÁÝÝÅÍÏÌÞÁ ÇÌÏÔÁÅÔ "TCCR0 = 1<<CS2 | FOC;" Ó ÐÒÏÐÕÝÅÎÙÍÉ ÅÄÉÎÉÞËÏÊ É ÓÄ×ÉÇÏÍ, ÞÔÏ ËÁË ÂÙ ÔÏÖÅ ÎÅ ÏÞÅÎØ ÐÒÉÑÔÎÏ É ÔÏÖÅ ÞÁÓÔÎÙÊ ÓÌÕÞÁÊ ÔÉÐÉÚÁÃÉÉ É ÂÏÒØÂÙ Ó ÔÉÐÁÍÉ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ðÒÉÓÔÁÀÔ Ë [úÁ/ðÏÄ]ÓÔÁ×Å ÇÏÓÔÉ

ðÒÉ×ÅÔ, Kirill !

13 Sep 09 , 23:26 Kirill Frolov ÐÉÓÁÌ Ë Nickita A Startcev:

NAS>> þÕÖÁÑ ÄÕÛÁ - ÐÏԣÍËÉ. NAS>> á Ñ ÌÀÂÌÀ ÒÅËÕÒÓÉÀ É ËÕÞÉ ÍÅÌËÉÈ ÆÕÎËÃÉÊ. á ÎÅËÏÔÏÒÙÅ ÌÀÂÑÔ NAS>> ÈÒÁÎÉÔØ

KF> òÅËÕÒÓÉÑ × ÏÂÌÁÓÔÉ ÜÈÏÔÁÇÁ ÎÁ ÍÅÌËÉÈ 8-ÂÉÔÎÙÈ CPU ÉÍÅÅÔ ÍÁÓÓÕ KF> ÐÒÏÂÌÅÍ.

åÓÌÉ ÏÞÅ×ÉÄÎÏ, ÞÔÏ ÏÎÁ È×ÏÓÔÏ×ÁÑ É ËÏÍÐÉÌÑÔÏÒ ÒÁÚ×ÅÒÎÅÔ ÅÅ × ÃÉËÌ, ÔÏ ÍÏÖÎÏ É ÒÅËÕÒÓÉ×ÎÏ ÐÉÓÁÔØ, ÅÓÌÉ ÜÔÏ ÐÏ×ÙÛÁÅÔ ÞÉÔÁÂÅÌØÎÏÓÔØ ËÏÄÁ.

KF> ÍÅÌËÉÅ ÆÕÎËÃÉÉ -- ÎÅ ×ӣ ÔÁË ÐÒÏÓÔÏ. ëÌÀÞÅ×ÏÅ ÓÌÏ×Ï -- ïâìáóôø KF> ÷éäéíïóôé.

õÇÕ.

KF> GCC Ó ×ÌÏÖÅÎÎÙÍÉ ÆÕÎËÃÉÑÍÉ ËÏÎÅÞÎÏ ÐÏÚ×ÏÌÑÅÔ ×ÙËÒÕÔÉÔÓÑ.

éÌÉ ÕËÁÚÁÔØ ×ÓÅÍ ÐÁÃÉÅÎÔÁÍ ÏÂÌÁÓÔØ ×ÉÄÉÍÏÓÔÉ "ÔÅËÕÝÉÊ ÆÁÊÌ", ÕÐÉÈÎÕÔØ ×ÓÀ ÛÏÂÌÕ × ÏÄÉÎ ÆÁÊÌ.

KF> á KF> × ÏÂÝÅÍ ÓÌÕÞÁÅ -- ÌÉÂÏ ÇÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ (ËÏÔÏÒÙÅ ÓÁÍÉ ÐÏ ÓÅÂÅ Åݣ KF> ÔÏ ÚÌÏ), ÌÉÂÏ ÕËÁÚÁÔÅÌÉ ÎÁ ÓÔÒÕËÔÕÒÕ É ÖÕÔËÏ ÇÒÏÍÏÚÄËÉÊ É KF> ÎÅÜÆÆÅËÔÉ×ÎÙÊ ËÏÄ, ÌÉÂÏ ÔÁËÉ ÇÒÏÍÏÚÄËÉÅ ÆÕÎËÃÉÉ. ôÅÍ ÂÏÌÅÅ, ÓÏÂÓÔ×ÅÎÎÏ KF> ÓÅÒأÚÎÙÈ ÐÒÉÞÉÎ ÄÅÌÁÔØ ÆÕÎËÃÉÀ ËÏÒÏÔËÏÊ -- ÎÅÔ,

static int counter;

int get_counter(int); int set_counter(int);

static int set_state(int); static .....

ÉÔÏÇÏ, ËÕÞËÁ ÍÅÌËÉÈ ÆÕÎËÃÉÊ ÐÌÀÓ ÕËÁÚÁÎÉÅ ËÏÍÐÉÌÑÔÏÒÕ ÎÁ ÔÏ, ÞÔÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ × ÜÔÏÍ ÆÁÊÌÅ É ÉÈ ÍÏÖÎÏ ÏÐÔÉÍÉÚÉÒÏ×ÁÔØ × ÌÀÂÙÈ ÐÏÚÁÈ.

KF> äÁ, ÎÁ ÓޣÔ goto. éÎÏÇÄÁ ÔÁËÉ ÐÏÌÅÚÅÎ:

formatting link
-- "éÎÁÞÅ ×ÁÒÉÁÎÔ Ó Ñ×ÎÙÍÉ goto ÂÕÄÅÔ ÂÙÓÔÒÅÅ." -- É ÄÅÊÓÔ×ÉÔÅÌØÎÏ KF> ÓÕÝÅÓÔ×ÅÎÎÏ ÂÙÓÔÒÅÅ. HÕ Á ËÌÁÓÓÉËÁ ÖÁÎÒÁ -- ×ÙÈÏÄ ÉÚ ÎÅÓËÏÌØËÉÈ KF> ×ÌÏÖÅÎÎÙÈ ÃÉËÌÏ×, ÁÌØÔÅÒÎÁÔÉ×Á -- ÚÁ×ÅÒÎÕÔØ ÃÉËÌ × ÆÕÎËÃÉÀ, ÎÏ ÏÐÑÔØ KF> ÖÅ ÐÒÏÂÌÅÍÁ ÏÂÌÁÓÔÉ ×ÉÄÉÍÏÓÔÉ, ÒÅÛÁÅÍÁÑ ÔÏÌØËÏ × GCC.

ÐÒÏ ×ÉÄÉÍÏÓÔØ - ÓÍ. ×ÙÛÅ. ëÓÔÁÔÉ, ÞÔÏ ÈÁÒÁËÔÅÒÎÏ, '×ÉÄÉÍÏÓÔØ × ÐÒÅÄÅÌÁÈ ÆÁÊÌÁ' ÍÁÌÏ ËÅÍ ÉÓÐÏÌØÚÕÅÔÓÑ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... "ËáÎÔÏÒÁ çÏÓÕÄÁÒÓÔ×ÅÎÎÏÊ âÅÚÏÐÁÓÎÏÓÔÉ"

ðÒÉ×ÅÔ, Kirill !

13 Sep 09 , 23:37 Kirill Frolov ÐÉÓÁÌ Ë Nickita A Startcev:

AM>>> á × ËÁËÏÍ ÑÚÙËÅ × ÄÁÎÎÏÍ ÓÍÙÓÌÅ ÈÏÒÏÛÏ? éíèï ÌÀÂÏÊ ÑÚÙË ÄÁÓÔ AM>>> ÐÏÔÅÒÀ ÚÎÁÞÅÎÉÑ, ÅÓÌÉ ÒÅÚÕÌØÔÁÔ ÏÐÅÒÁÃÉÉ ÎÅÐÒÅÄÓÔÁ×ÉÍ ÔÉÐÏÍ AM>>> ÒÅÚÕÌØÔÁÔÁ. NAS>> ÷ ÔÅÏÒÉÉ, ÔÕÔ ÍÏÖÎÏ ×ÙÚ×ÁÔØ ÉÓËÌÀÞÅÎÉÅ, ÉÌÉ ÅÝÅ ËÁËÏÅ 'into' NAS>> ģÒÎÕÔØ.

KF> ÷ ÔÅÏÒÉÉ ÔÉÐ ÒÅÚÕÌØÔÁÔÁ ÍÏÖÅÔ ÂÙÔØ ÄÉÎÁÍÉÞÅÓËÉÊ. HÁ ÐÒÁËÔÉËÅ ÔÏÌØËÏ KF> ËÁË-ÔÏ ÎÅ ×ÓÐÏÍÉÎÁÅÔÓÑ, ÐÅÒÅÐÏÌÎÅÎÉÅ ×ÅÚÄÅ ×ÒÏÄÅ ËÁË ÐÒÏÓÔÏ KF> ÐÒÏÇÌÁÔÙ×ÁÅÔÓÑ ÍÏÌÞÁ.

ðÏÞÔÉ ×ÅÚÄÅ. ðÒÉ ÄÅÌÅÎÉÉ ÎÁ È86, ÅÓÌÉ ÞÁÓÔÎÏÅ ÎÅ ÌÅÚÅÔ × ÒÅÇÉÓÔÒ (ÎÁÐÒÉÍÅÒ, ÄÅÌÉÍ int16(4096) ÎÁ int8(4), ÏÖÉÄÁÅÍ ÞÁÓÔÎÏÅ int8 ) ÔÏ ÌÅÔÉÔ ÉÓËÌÀÞÅÎÉÅ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ëÎÉÇÁ öÁÌÏ ÂÙÌÁ ÏÞÅÎØ ÖÁÌÏÂÎÏÊ

Mon Sep 14 2009 10:54, Nickita A Startcev wrote to Kirill Frolov:

NAS> static int counter; NAS> int get_counter(int); NAS> int set_counter(int); NAS> static int set_state(int); NAS> static .....

NAS> Кстати, что характерно, 'видимость в пределах файла' мало кем NAS> используется.

Hу не знаю. Я даже очень использую. Файл в таком случае -- это "объект" или "класс". Хотя скорей объект.

Хотя есть вот любители делать #include "*.c" или вовсе писать в 30 тыс. строк в одном файле. Оптимизация панимашь-ли. Это в лучшем случае...

Mon Sep 14 2009 11:07, Nickita A Startcev wrote to Kirill Frolov:

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

NAS> Почти везде. NAS> При делении на х86, если частное не лезет в регистр (например, делим NAS> int16(4096) на int8(4), ожидаем частное int8 ) то летит исключение.

Я про существующие языки программирования, а не про x86 или там пик. Hаличие динамической типизации от переполнения не спасает.

ðÒÉ×ÅÔ, Kirill !

14 Sep 09 , 14:54 Kirill Frolov ÐÉÓÁÌ Ë Nickita A Startcev:

NAS>> static int counter; NAS>> int get_counter(int); NAS>> int set_counter(int); NAS>> static int set_state(int); NAS>> static .....

NAS>> ëÓÔÁÔÉ, ÞÔÏ ÈÁÒÁËÔÅÒÎÏ, '×ÉÄÉÍÏÓÔØ × ÐÒÅÄÅÌÁÈ ÆÁÊÌÁ' ÍÁÌÏ ËÅÍ NAS>> ÉÓÐÏÌØÚÕÅÔÓÑ.

KF> HÕ ÎÅ ÚÎÁÀ. ñ ÄÁÖÅ ÏÞÅÎØ ÉÓÐÏÌØÚÕÀ. æÁÊÌ × ÔÁËÏÍ ÓÌÕÞÁÅ -- ÜÔÏ KF> "ÏÂßÅËÔ" ÉÌÉ "ËÌÁÓÓ". èÏÔÑ ÓËÏÒÅÊ ÏÂßÅËÔ.

namespace ÔÏÇÄÁ ÕÖ. :)

KF> èÏÔÑ ÅÓÔØ ×ÏÔ ÌÀÂÉÔÅÌÉ ÄÅÌÁÔØ #include "*.c" ÉÌÉ ×Ï×ÓÅ ÐÉÓÁÔØ × 30 KF> ÔÙÓ. ÓÔÒÏË × ÏÄÎÏÍ ÆÁÊÌÅ. ïÐÔÉÍÉÚÁÃÉÑ ÐÁÎÉÍÁÛØ-ÌÉ. üÔÏ × ÌÕÞÛÅÍ KF> ÓÌÕÞÁÅ...

é ÐÒÉ ÜÔÏÍ Õ ÎÉÈ ËÏÄ ÏÂÙÞÎÏ ÞÕÔØ ÄÌÉÎÅÅ É ÞÕÔØ ÔÏÒÍÏÚÎÅÅ, ÞÅÍ Õ ËÏÎËÕÒÅÎÔÏ×.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... é ÎÉÖÎÅÅ ÂÅÌأ ÎÁ ËÁÂÌÕËÁÈ

Kirill,

You wrote to Andrey Arnold:

KF>>> ÜÌÅÍÅÎÔÁÒÎÙÈ ÔÉÐÏ× -- ÐÒÉÚÎÁË ÇÏ×ÎÏËÏÄÁ. AA>> HÕ ×ÏÔ É ÎÅ ÐÉÛÉ ÇÏ×ÎÏËÏÄ Ó ÜÔÉÍÉ ÓÁÍÏÄÅÌØÎÙÍÉ uintx_t. KF> HÅ ÐÉÛÉ ÏÔ×ÅÔÏ× × ËÏÎÆÅÒÅÎÃÉÀ.

ôÙ ÐÏÍÎÉÔÓÑ ÔÕÔ ÇÒÏÍËÏ ÈÌÏÐÁÌ Ä×ÅÒØÀ... ÔÅÂÑ ÓÉÌØÎÏ ÕÇÏ×ÁÒÉ×ÁÌÉ ×ÅÒÎÕÔØÓÑ ÏÂÒÁÔÎÏ...?

KF>>> èÏÔÑ ÂÙ ÐÏÔÏÍÕ, ÞÔÏ ÔÁËÏÊ ËÏÄ ÎÅÌØÚÑ ÐÏ×ÔÏÒÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ KF>>> (Ctrl-C, Ctrl-V) ÇÄÅ-ÌÉÂÏ Åݣ. AA>> ó ÞÅÇÏ ÂÙ ÜÔÏ? KF> âÁÎÁÌØÎÏ ÎÅ ÓÏÂÅңÔÓÑ. á ÐÒÉ ÐÏÄÓÏ×Ù×ÁÎÉÉ ÓÁÍÏÄÅÌØÎÏÇÏ BYTE KF> Åݣ ×ÙÊÄÅÔ ÒÁÚÎÏÏÂÒÁÚÎÅÊÛÁÑ ÌÁÖÁ, ÏÔ ÐÌÁÔÆÏÒÍÙ ÓÉÌØÎÏ ÚÁ×ÉÓÉÔ.

"óÁÍÏÄÅÌØÎÙÊ ÂÁÊÔ" ÜÔÏ ×ÓÅÇÏ ÌÉÛØ ÕÎÓÁÊÇÎÅÔ ÞÁÒ, É × ÔÏÐËÕ ÔÁËÕÀ ÐÌÁÔÆÏÒÍÕ, ËÏÔÏÒÁÑ ÐÒÏÓÔÅÊÛÉÅ ÁÌÉÁÓÙ ÎÅ ÐÏÎÉÍÁÅÔ.

Andrey

Kirill,

You wrote to Andrey Arnold:

NAS>>>> TCCR0 = _BV(CS2) | _BV(FOC); NAS>>>> ÅÝÅ ËÏÒÏÞÅ É ÎÁÇÌÑÄÎÅÅ. :) KF>>> TCCR0 = 1<<CS2 | 1<<FOC; AA>> èÒÅÎ ÒÅÄØËÉ ÎÅ ÓÌÁÝÅ... KF> HÅ ÓÌÉÛËÏÍ ÎÁÇÌÑÄÎÏ -- ÄÁ. úÁÔÏ ÒÁÂÏÔÁÅÔ ÓÒÁÚÕ ÉÓËÁÒÏÐËÉ,

äÁ ÐÏÎÑÔÎÏ ÜÔÏ, ... Ñ ÔÏÖÅ ÞÁÓÔÏ ÉÍÅÎÎÏ ÔÁË É ÐÉÛÕ. ôÏÌØËÏ ÓËÏÂËÉ ÓÔÁ×ÌÀ ... ÐÒÉÏÒÉÔÅÔÙ ÐÒÉÏÒÅÔÅÔÁÍÉ, ÎÏ Ñ ÓÏ ÓËÏÂËÁÍÉ ËÁË-ÔÏ Õ×ÅÒÅÎÎÅÊ ÓÅÂÑ ÞÕ×ÓÔ×ÕÀ.

HÏ ÒÅÞØ-ÔÏ ÛÌÁ Ï ÎÁÇÌÑÄÎÏÓÔÉ, Á ÎÅ Ï "ÚÁÔÏ...".

Andrey

Hello All,

ëÓÔÁÔÉ, ÔÏÔ ÖÅ ×ÏÐÒÏÓ, ÎÏ ÐÒÏ IAR MSP430 ? ðÏÓÏ×ÅÔÏ×ÁÎÎÏÅ: #pragma location 0x1080 char const Param[4]={"123"}; ÎÅ ÐÏÍÏÇÁÅÔ.

With best regards, Alexander Torres. 2:461/28

formatting link
OR
formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required