Embedded OS

Mar 08, 2005 Last reply: 21 years ago 1304 Replies

Hello Dima.

19 Mar 05 14:42, you wrote to me:

íÏÖÅÔ ÂÙÔØ.

äÁ ÎÅÔ. íÁËÒÏÓ ÄÏÌÖÅÎ ÉÚÏÂÒÁÖÁÔØ ÔÏ, ÞÔÏ × óÉ ÎÁÚÙ×ÁÅÔÓÑ ÏÐÅÒÁÔÏÒÏÍ. á ÆÕÎËÃÉÉ(ÐÏÄÐÒÏÇÒÁÍÍÙ) × ÍÁËÒÏÁÓÓÅÍÂÌÅÒÅ ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ.

Alexey

Hello Dima.

19 Mar 05 14:43, you wrote to Olga Nonova:

DO> á ÎÅ ÉÓÐÏÌØÚÕÀ ÓÔÁÎÄÁÒÔÎÙÊ printf, ËÏÔÏÒÙÊ Õ ÍÅÎÑ ÐÏÌÐÚÕ É Ä×Å ÔÒÅÔÉ DO> ÏÚÕ ÏÔÏÖÒÅÔ.

÷ÏÔ ÜÔÏÔ ÍÏÖÅÔ ÂÕÄÅÔ ÐÏÍÅÎØÛÅ (× ÓÔÅËÅ ÂÁÊÔÏ× 40):

typedef unsigned int addr_t; #define FALSE 0 #define TRUE 1

/*

  • num()
  • Convert a number to a string
*/ static char *num(char *obuf, unsigned long x, unsigned int base, unsigned char issigned) { char buf[16]; char *p = buf + 16; unsigned int c; int sign = 0;

if ((base == 10) && ((long)x < 0) && issigned) {

*obuf++ = '-'; x = -(long)x; sign++; }

*--p = '\0'; do { c = (x % base); if (c < 10) {

*--p = '0' + c; } else { *--p = 'A' + (c - 10); } x /= base; } while (x != 0);

strcpy(obuf, p);

return obuf + (addr_t)buf + sizeof(buf) - 1 - (addr_t)p; }

void strnset(char *str, unsigned c, int count) { while(count) *str++=c , count--;

*str++ = 0; }

char *strrpad0(char *dest, char *src, int width, int c) { if (strlen(src) > width) { strcpy(dest, src); return dest+strlen(src); //strnset(dest, '*', width); } else { strnset(dest, c, width); strcpy(dest+width-strlen(src), src); return dest+width; } }

/*

  • sprintf()
  • Print to a string - really trivial impelementation!
*/ //int sprintf(char *buf, const char *fmt, ...) int sprintf(char *buf, const char *fmt, ...) { char *bp = (char *)fmt; char nbuf[16]; va_list ap; char c; char *p; unsigned char longflag; unsigned char width; unsigned char zeropad;

p = buf; va_start(ap, fmt);

while ((c = *bp++)) { if (c != '%') {

*p++ = c; continue; }

longflag = FALSE; if (*bp == 'l') { longflag = TRUE; bp++; }

zeropad = FALSE; if (*bp == '0') { zeropad = TRUE; bp++; }

width = 0; if (isdigit(*bp)) { width = *bp-'0'; bp++; }

switch ((c = *bp++)) { case '%':

*p++ = '%'; break; case 'd': if (longflag) { num(nbuf, va_arg(ap, long), 10, TRUE); } else { num(nbuf, va_arg(ap, int), 10, TRUE); } p = strrpad0(p, nbuf, width, zeropad ? '0' : 32); break;

case 'u': if (longflag) { num(nbuf, va_arg(ap, unsigned long), 10, FALSE); } else { num(nbuf, va_arg(ap, unsigned int), 10, FALSE); } p = strrpad0(p, nbuf, width, zeropad ? '0' : 32); break; case 'x': case 'X': //*p++ = '0'; //*p++ = 'x'; if (longflag) { num(nbuf, va_arg(ap, unsigned long), 16, FALSE); } else { num(nbuf, va_arg(ap, unsigned int), 16, FALSE); } p = strrpad0(p, nbuf, width, zeropad ? '0' : 32); break;

case 's': strcpy(p, va_arg(ap, char *)); p += strlen(p); break;

case 'c':

*p++ = va_arg(ap, int); break;

default:

*p++ = '?'; break; } }

*p = '\0';

return (addr_t)(p - buf); }

Alexey

Hello Dima.

19 Mar 05 14:42, you wrote to me:

DO> Контроллеры от IRF не делают ничего из того, что делает наша изюминка DO> по той простой причине, что они для люминисцендных ламп, а наша для DO> дуговых, причем вполне конкретных дуговых.

А, вот как.

То есть, среднеквадратический? Если я правильно помню понятие действующий.

Ты про люминесцентные? Я про них.

Alexey

Приветствую Вас, многоуважаемый/ая/ое Alexey!

Суб Маp 19 2005 13:20, Alexey Boyko писал к Dmitri Litovchenko:

DL>> Hу и кто в здравом уме так напишет? AB> Пример был абстрактный. Призваный показать, что и в паскале не все AB> гладко.

Пример из серии, не в обиду будь сказано, "с дури можно и [beep] сломать" ;))).

DL>> A, b, s - размером до 2G. AB> И на паскале, а не на дельфи.

А что, нужно было на BP7? Hу очень древний продукт... неплохой, но древний.

AB> Да, я знаю, что в Дельфи стандартные строки улучшили.

Hу а чего от общественности утаиваешь ;)? И вообще, на пороге D2005, зачем обсуждать BP7? Правда, к эхотагу это уже не относится, так что я пошел :))).

AB> паскаль-то, не был языком системного программирования. А уж дельфи и AB> подавно.

Смотря чего мы хотим от зверюшки.

С наилучшими пожеланиями, Dmitri.

Hello, Alexey Boyko !

HÕ ÜÔÏÇÏ-ÔÏ ÏÎ ÔÅÍ ÂÏÌÅÅ ÎÅ ÍÏÖÅÔ...

äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÈ ×ÙÚÏ× ÎÁÐÏÍÉÎÁÌ ×ÙÚÏ× ÆÕÎËÃÉÉ, ÎÕÖÅÎ ÍÁËÒÏÓ... ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Alexey Boyko !

õÖ ×ÓÑËÏ ÎÅ ÍÅÎØÛÅ, ÞÅÍ Õ ÍÅÎÑ... ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Alexey Boyko !

Ага.

Ага.

И я тоже.

С уважением, Дима Орлов.

ðÒÉ×ÅÔÓÔ×ÕÀ ÷ÁÓ, ÍÎÏÇÏÕ×ÁÖÁÅÍÙÊ/ÁÑ/ÏÅ Dima! óÕ íÁp 19 2005 14:42, Dima Orlov ÐÉÓÁÌ Ë Dmitri Litovchenko:

DO> áÇÁ, ÎÁ AVR...

HÅ, ÎÁ ð4 :). AVR ÍÎÅ ËÁË-ÔÏ ÓÌÏÖÎÏ ×ÏÓÐÒÉÎÑÔØ ËÁË ÐÅÒÅÌÏÐÁÞÉ×ÁÔÅÌØ ËÕÞÉ ÍÅÇÁÂÁÊÔ. HÁ×ÅÒÎÏÅ, Ñ ÅÝÅ ÎÅ ÐÒÏÎÉËÓÑ :))).

DO> é ÏÈÒÅÎÅÎÎÁÑ ÜÆÆÅËÔÉ×ÎÏÓÔØ ÄÌÑ ËÕÞÉ ÍÅÌËÉÈ ÓÔÒÏË...

HÕ ÕÖ ÉÚ×ÉÎÉÔÅ... ÉÌÉ ÓËÏÒÏÓÔØ, ÉÌÉ ÎÁÄÅÖÎÏÓÔØ. äÌÑ ÌÀÂÉÔÅÌÅÊ ÎÁÇÌÀÞÉÔØ ÅÓÔØ null-terminated strings (PChar).

ó ÎÁÉÌÕÞÛÉÍÉ ÐÏÖÅÌÁÎÉÑÍÉ, Dmitri.
ðÒÉ×ÅÔ Fedor!

Friday March 11 2005 22:53, Fedor Pochechuyev wrote to Maxim Polyanskiy:

FP> ÞÔÏ ÓÏÈpÁÎÑÔØ ÎÕÖÎÏ. ÷ÏÔ ÜÔÕ ÆÉÞÕ ÎÁpÏÄ × ÏÓÎÏ×ÎÏÍ É ÃÅÎÉÔ. HÕ É Ó ÔÏÊ FP> ÃÅÎÏ×ÏÊ ÐÏÌÉÔÉËÏÊ ÞÔÏ Õ áÔÍÅÌ ×pÑÄÌÉ ËÔÏ Ó ÎÉÈ ÓÌÅÚÅÔ.

èÍ, Ó ÉÈ "ÐÏÌÉÔÉËÏÊ" - ÓÔÒÁÎÎÏ ÞÔÏ ÅÝÅ ËÔÏ-ÔÏ ÚÁÌÁÚÉÔ....

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

formatting link
, ftp://altor.sytes.net

Привет Alexey!

Saturday March 19 2005 12:20, Alexey Boyko wrote to Dima Orlov:

DO>> Изюминка в процедуре зажигания и разогрева лампы. AB>

AB> А кстати, что дает ваша изюминка, чего не дают всякие контроллеры от IRF?

Работают с МH-лампами,в отличие от IRF, у которого 2всякие контроллеры" - для фдуорисцентных лампочек.

AB> Еще: Какой ток для лампы важнее средний или максимальный?

Лампе важна мощность.

AB> То есть можно ли регулировать ток в лампе ШИМ-ом? А в нити накала?

Ты что-то перепутал, ни в одной из тех лампочек, которыми мы занимаемся - никаких нитей накала нет.

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

formatting link
, ftp://altor.sytes.net

19-Mar-05 14:43 Dima Orlov wrote to Olga Nonova:

DO> Это не рекламные акции, они наверняка начали делать этот кристалл Я помню ещё тогдашние разговоры. Когда недавно выкатились at90pwm2 и at90pwm3 - я как раз про вашу работу вспомнил.

Здравствуйте, Уважаемый Kirill!

Пока не офтопик.

Fri Mar 18 2005 21:54, Kirill Frolov wrote to Olga Nonova:

ON>> А если по-существу, без уворачиваний- допустили Вы синтаксиса ошибку или ON>> нет? Да, или нет?

KF> Hет. Доказательство? Это компилируется.

Позвольте не поверить. Размер массива на этапе компиляции зависит от результата вызова библиотечной функции на рантайме. Короче, фигня произвойдет. И если компилятор не дает сообщений про ошибки, то пусть будет хуже пользователю такого компилятора.

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Kirill!

Пока не офтопик.

Sat Mar 19 2005 01:08, Kirill Frolov wrote to Olga Nonova:

ON>> это сильное преувеличение. Максимум сыщется пара фанатиков, что полезет ON>> дизассемблировать библиотеки и искать в них баги. Hа пользователей в ON>> этом деле-совершенно никакой надежды.

KF> То-то же библиотеки часто предоставляются и в исходном коде.

Это несерьезно. Авторы исходников заранее расписываются в беспомощности отловить баги и приглашают пользователей заняться тестированием. Вам это надо? Имеет смысл ощаться только с откомпилированными библиотеками, в которых авторы отвечают за базар.

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Kirill!

Пока не офтопик.

Sat Mar 19 2005 01:17, Kirill Frolov wrote to Olga Nonova:

AB>>> это: strcmp_P, strcasecmp_P, strncmp_P ON>> В версии 1.40 их не было. Вполне допускаю, что недавно были произведены ON>> дополнения. Под давлением суровой правды жизни.

KF> AVR GCC 1.40? Да... Скажу по секрету -- такого никогда не KF> существовало. Hасколько я помню, всё начиналось с 3.0.0, может KF> быть с последних 2.xx.

Ловите на незнание рынка предложений по С-компиляторам? Можете радоваться- словили, что человек не смог по короткому названию из трех букв отличить продукт GNU от IAR.

Всего Вам Хорошего Ольга

Hi Alexey!

В субботу, 19 маpта 2005 13:20:02, Alexey Boyko писал to Dmitri Litovchenko:

DL>> Hу и кто в здравом уме так напишет?

AB> Пример был абстрактный. Призваный показать, что и в паскале не все AB> гладко.

Проще на ноль поделить.

AB> И на паскале, а не на дельфи.

Hа стандартном Паскале приведённый пример вызовет ошибку компиляции. А если под "паскалем" понимается Borland Pascal 7, то результаты в нём в данном случае ничем не отличаются от Delphi.

Sincerely, Vadim.

Здравствуйте, Уважаемый George!

Пока не офтопик.

Fri Mar 18 2005 14:03, George Shepelev wrote to Olga Nonova:

GS> Hа чём прикажете ваять программы для семейства AVR? Hа паскале? URL, где GS> соответствующий компилятор можно взять, пожалуйста!

Так, ведь в этом вся и проблема!

Всего Вам Хорошего Ольга

KF>> åݣ ÈÉÔÒÙÊ ×ÏÐÒÏÓ. á ËÁË × ÜÔÏÍ ×ÁÛÅÍ ÇÁÄÓËÏÍ ÐÁÓËÁÌÅ, ÎÅ ÎÁÄÏ KF>> ÔÏÌØËÏ ÏÏÐÝÉÎÕ ÐÒÉ×ÌÅËÁÔØ, ÎÁÐÉÓÁÔØ ÆÕÎËÃÉÀ ÓÏÒÔÉÒÏ×ËÉ ÐÒÉÍÅÎÉÍÕÀ KF>> Ë ÐÒÏÉÚ×ÏÌØÎÏÍÕ ÔÉÐÕ ÄÁÎÎÙÈ? ÷ÏÔ × libc ÉÍÅÅÔÓÑ qsort. DL> --------------------------------------------------------------------- DL> procedure QuickSort(SortList: PPointerList; L, R: Integer; DL> SCompare: TListSortCompare); DL> while SCompare(SortList^[I], P) < 0 do DL> ïÎÏ?

çÄÅ ÄÅËÌÁÒÁÃÉÑ TListSortCompare? ñ ×ÏÏÂÝÅ-ÔÏ ÐÁÓËÁÌØ ÉÍÅÌ ××ÉÄÕ, Á ÎÅ ÒÁÚÎÏÏÂÒÁÚÎÙÅ ÅÇÏ ÒÁÓÛÉÒÅÎÉÑ.

Hello, Oleksandr Redchuk !

Тот, о котором речь - avr, но со специализированной под наши задачи периферией, и так и назывался. Только опять же, это самый массовый рынок FL балластов, который с HID балластами прямо не пересекается. Hо похоже и с ним не все так как планировалось вышло, что впрочем вполне ожидаемо. В любом случае, я не жалею о потраченном времени.

С уважением, Дима Орлов.

Hello, Dmitri Litovchenko !

äÅÌÏ ÎÅ × ÎÁÇÌÀÞÉÔØ, ÄÅÌÏ × ÔÏÍ, ÞÔÏ ÎÅ ÎÁÄÏ ÎÅÓÒÁ×ÎÉÍÙÅ ×ÅÝÉ ÓÒÁ×ÎÉ×ÁÔØ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Olga Nonova !

HÅÔ, ÄÅÔÏÞËÁ. á×ÔÏÒÙ ÉÚÎÁÞÁÌØÎÏ ÄÁÀÔ ÏÔËÒÙÔÙÊ ÐÒÉÍÅÒ ÄÌÑ ÐÏÄÒÁÖÁÎÉÑ/ÍÏÄÉÆÉËÁÃÉÉ.

áÇÁ. éÍÅÎÎÏ ÚÁ ÜÔÏ ÍÙ É ÐÌÁÔÉÍ ÎÁÛÉ ÓÏÔÎÉ ÄÏÌÌÁÒÏ×.

You are welcome.

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required