Через сколько тактов после cli будут запрещены прерывания? (ATMega8

Привет, Kirill!

24 мая 2006 17:42, Kirill Frolov писал Andrey Samarin:

KF> "No interrupt will be executed after cli instruction..." KF> Следовательно -- глюк VMLab'а. Спасибо, успокоил. Собственно, в документации и было написано нечто подобное, но на вякий случай решил навести дополнительные справки. А то мало ли что в документации напишут. :)

А вообще какие народ отладчики-эмуляторы пользует? Какие самые популярные? Протеус?

И еще, что бы новую ветку не начинать, спрошу здесь: при выводе на ЖКИ (HD44780) при помощи printf цифр, он же их в таблицу кодировки epson не переводит? Так? А как правильно выпутаться из этой ситуации? Выводить в буфер, а затем проходиться по нему перекодирующей подпрограммой?

Заранее благодарен за ответ.

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... Если звёзды зажигаются в небе, значит это кому-нибудь нужно...

Reply to
Andrey Samarin
Loading thread data ...

 X-RFC2646: Format=Flowed; Original X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Andrey Samarin! You wrote in conference fido7.ru.embedded to snipped-for-privacy@fk0.pp.ru on Wed, 24 May

2006 16:13:00 +0400:

KF>> "No interrupt will be executed after cli instruction..." KF>> Следовательно -- глюк VMLab'а. AS> Спасибо, успокоил. Собственно, в документации и было написано AS> нечто подобное, но на вякий случай решил навести дополнительные AS> справки. А то мало ли что в документации напишут. :)

AS> А вообще какие народ отладчики-эмуляторы пользует? Какие самые AS> популярные?

Отладочная печать в компорт, отладочные подергивания ножками. Не привязанные к аппаратуре алгоритмы можно вообще в Турбо-С скомпилировать и там же и отладить.

AS> Протеус?

Фигня.

AS> И еще, что бы новую ветку не начинать, спрошу здесь: при выводе AS> на ЖКИ (HD44780) при помощи printf цифр, он же их в таблицу AS> кодировки epson не переводит? Так? А как правильно выпутаться из AS> этой ситуации? Выводить в буфер, а затем проходиться по нему AS> перекодирующей подпрограммой?

Не надо. Printf через putch() работает, которую все равно надо свою писать для вывода на LCD, в ней и перекодируй.

dima

formatting link

Reply to
Dmitry Orlov

Привет Dmitry!

24 May 06 18:55, Dmitry Orlov писал Andrey Samarin:

DO> Hе надо. Printf через putch() работает

Кто сказал? У меня в куче проектов printf используется, но никакой putch нет. Через что работает printf, надо смотреть в документации на содержащую ее библиотеку.

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

Reply to
Alex Mogilnikov

 X-RFC2646: Format=Flowed; Original X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 24 May

2006 23:41:56 +0400:

DO>> Hе надо. Printf через putch() работает

AM> Кто сказал?

Я тебе говорю.

AM> У меня в куче проектов printf используется, но никакой putch нет. Через

Значит что-то похожее есть.

AM> что работает printf, надо смотреть в документации на содержащую ее AM> библиотеку.

А еще лучше в саму библиотеку. Если речь идет о IAR AVR, то putch() в ней и правда нет, зато есть

int putchar(int ch) { /* put your own putchar-function here

*/ return ch; }

через которую printf и работает. А в picc и picc18 надо именно putch() свой написать, printf работает там через putch().

dima

formatting link

Reply to
Dmitry Orlov
24 мая 06, Andrey Samarin wrote to snipped-for-privacy@fk0.pp.ru

AS> И еще, что бы новую ветку не начинать, спpошу здесь: пpи выводе на AS> ЖКИ (HD44780) пpи помощи printf цифp, он же их в таблицу кодиpовки epson AS> не пеpеводит? Так? А как пpавильно выпутаться из этой ситуации? Выводить AS> в буфеp, а затем пpоходиться по нему пеpекодиpующей подпpогpаммой?

Обычно printf pаботает не напpямую а чеpез что-нибудь типа putchar, пpописав свой putchar можно в нем вызывать функцию пеpекодиpовки. В пpогpаммах использующих printf у меня сделано так.

Bye

Reply to
Alexej Goncharovskij

Привет, Dmitry!

24 мая 2006 18:55, Dmitry Orlov писал Andrey Samarin:

AS>> А вообще какие народ отладчики-эмуляторы пользует? Какие AS>> самые популярные? DO> Отладочная печать в компорт, отладочные подергивания ножками. Hе DO> привязанные к аппаратуре алгоритмы можно вообще в Турбо-С DO> скомпилировать и там же и отладить. Ясно, спасибо.

AS>> Протеус? DO> Фигня. В чем, если не секрет?

AS>> И еще, что бы новую ветку не начинать, спрошу здесь: при AS>> выводе AS>> на ЖКИ (HD44780) при помощи printf цифр, он же их в таблицу AS>> кодировки epson не переводит? Так? А как правильно выпутаться из AS>> этой ситуации? Выводить в буфер, а затем проходиться по нему AS>> перекодирующей подпрограммой? DO> Hе надо. Printf через putch() работает, которую все равно надо свою DO> писать для вывода на LCD, в ней и перекодируй. Hаверное я пока плохо знаю Си, поскольку не знаю что это за стандартная функция такая, putch(). Hо в экземплах к WinAVR вывод символов на ЖКИ идет через соответствующим образом назначенный поток:

FILE lcd_str = FDEV_SETUP_STREAM(lcd_putchar, NULL, _FDEV_SETUP_WRITE);

fprintf(&lcd_str, "Privet!");

Думаю, в lcd_putchar и надо будет перекодировать.

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... Сердце красавицы склонно к апгрейду...

Reply to
Andrey Samarin

Привет, Kirill!

25 мая 2006 14:42, Kirill Frolov писал Andrey Samarin:

KF> Функция printf же циферки и буковки (hex) выводит исключительно в KF> ASCII. А всё остальное -- как есть (как ей на вход дали), потому как KF> никакого представления о кодировках и алфавитах не имеет.

KF> Так что я сути вопроса не понимаю. Цифры как цифры. А если нужны KF> русские буковки, то проще их до printf ещё перекодировать. До этапа KF> компиляции. Hа уровне исходника. Если программа, конечно, работает с KF> одним языком. Принято.

2Олл: Спасибо, разобрался.

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... За пpекpасных дам и дpyгих мифических пеpсонажей!

Reply to
Andrey Samarin

Пpивет, Kirill!

25 мая 2006 14:42, Kirill Frolov писал Andrey Samarin:

KF> Функция printf же цифеpки и буковки (hex) выводит исключительно в KF> ASCII. А всё остальное -- как есть (как ей на вход дали), потому как KF> никакого пpедставления о кодиpовках и алфавитах не имеет.

KF> Так что я сути вопpоса не понимаю. Цифpы как цифpы. А если нужны KF> pусские буковки, то пpоще их до printf ещё пеpекодиpовать. До этапа KF> компиляции. Hа уpовне исходника. Если пpогpамма, конечно, pаботает с KF> одним языком. Пpинято.

2Олл: Спасибо, pазобpался.

С уважением, Андpей АКА Хомич, АКА UR3LTG. ... За пpекpасных дам и дpyгих мифических пеpсонажей!

Reply to
Andrey Samarin

А нет их для AVR. Proteus это не симулятор. Т.е. симулятор, но не микроконтроллера.

Что значит "таблица кодировки EPSON"? Я так думаю, он ASCII код понимает. 7-битный. А с установленным 8-м битом русский, японский или ещё какой дополнительный набор символов.

Функция printf же циферки и буковки (hex) выводит исключительно в ASCII. А всё остальное -- как есть (как ей на вход дали), потому как никакого представления о кодировках и алфавитах не имеет.

Так что я сути вопроса не понимаю. Цифры как цифры. А если нужны русские буковки, то проще их до printf ещё перекодировать. До этапа компиляции. На уровне исходника. Если программа, конечно, работает с одним языком.

Reply to
Kirill Frolov

Если в C, то и привязанные к аппаратуре можно. Путём написания на этом же C простенького эмулятора аппаратуры. Для чего имеется "HAL" реальный и с эмулятором, подсовываемый в зависимости от того, куда компиляция.

Reply to
Kirill Frolov

Речь про то, как типично. И как у HiTech (от их старой библиотеки исходники есть и разобраться можно более-менее).

Reply to
Kirill Frolov

Привет Dmitry!

25 May 06 00:25, Dmitry Orlov писал Alex Mogilnikov:

DO>>> Hе надо. Printf через putch() работает AM>> Кто сказал? DO> Я тебе говорю.

Я так и подумал. :)

AM>> У меня в куче проектов printf используется, но никакой putch нет. DO> Значит что-то похожее есть.

write(int file, char *ptr, int len).

DO> Если речь идет о IAR AVR, то putch() в ней и правда нет, зато есть DO> int putchar(int ch) DO> А в picc и picc18 надо именно putch() свой написать,

Вот я и говорю: это везде по-разному.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Синяки рождаются в споре куда чаще, чем истина...

Reply to
Alex Mogilnikov

 X-RFC2646: Format=Flowed; Original X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 25 May

2006 10:44:03 +0000 (UTC):

KF> AS>>> А вообще какие народ отладчики-эмуляторы пользует? Какие самые AS>>> популярные?

KF> Если в C, то и привязанные к аппаратуре можно. Путём написания на KF> этом же C простенького эмулятора аппаратуры.

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

KF> Для чего имеется "HAL" реальный и с эмулятором, подсовываемый в KF> зависимости от того, куда компиляция.

Бог, как говорится, в помощь.

dima

formatting link

Reply to
Dmitry Orlov

 X-RFC2646: Format=Flowed; Original

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 25 May

2006 15:26:07 +0400:

DO>>>> Hе надо. Printf через putch() работает AM>>> Кто сказал? DO>> Я тебе говорю.

AM> Я так и подумал. :)

Ты бы лучше подумал в чем вопрос состоит.

AM>>> У меня в куче проектов printf используется, но никакой putch нет. DO>> Значит что-то похожее есть.

AM> write(int file, char *ptr, int len).

Это где?

DO>> Если речь идет о IAR AVR, то putch() в ней и правда нет, зато есть DO>> int putchar(int ch) DO>> А в picc и picc18 надо именно putch() свой написать,

AM> Вот я и говорю: это везде по-разному.

Пр "везде" никто вроде бы и не спрашивал и никто не говорил.

dima

formatting link

Reply to
Dmitry Orlov

Привет, Alexej!

25 мая 2006 02:50, Alexej Goncharovskij писал Andrey Samarin:

AG> Обычно printf pаботает не напpямую а чеpез что-нибудь типа putchar, AG> пpописав свой putchar можно в нем вызывать функцию пеpекодиpовки. В AG> пpогpаммах использующих printf у меня сделано так. Спасибо, так и сделаю.

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... ... Водка - это квадовое пиво...

Reply to
Andrey Samarin

Привет, Alex!

25 мая 2006 18:53, Alex Mogilnikov писал Dmitry Orlov:

AM>>> Вот я и говорю: это везде по-разному. DO>> Пр "везде" никто вроде бы и не спрашивал и никто не говорил. AM> Hи Андрей, ни ты не уточняли, о какой библиотеке идет речь. Использовалась стандартная библиотека WinAVR (avrlib).

2Дмитрий Орлов: я уже догадался что putch() - это эквивалент putchar(). :)

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... ...Winamp: Краснознаменный хор HКВД - Если завтра война

Reply to
Andrey Samarin

Привет Dmitry!

25 May 06 16:12, Dmitry Orlov писал Alex Mogilnikov:

AM>> Я так и подумал. :) DO> Ты бы лучше подумал в чем вопрос состоит.

У меня пока нет вопросов.

AM>> write(int file, char *ptr, int len). DO> Это где?

newlib.

AM>> Вот я и говорю: это везде по-разному. DO> Пр "везде" никто вроде бы и не спрашивал и никто не говорил.

Hи Андрей, ни ты не уточняли, о какой библиотеке идет речь.

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

Reply to
Alex Mogilnikov

 X-RFC2646: Format=Flowed; Original X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Andrey Samarin! You wrote in conference fido7.ru.embedded to snipped-for-privacy@isdn.net.il on Thu, 25 May 2006 13:34:42 +0400:

AS>>> А вообще какие народ отладчики-эмуляторы пользует? Какие самые AS>>> популярные?

DO>> Отладочная печать в компорт, отладочные подергивания ножками. Hе DO>> привязанные к аппаратуре алгоритмы можно вообще в Турбо-С DO>> скомпилировать и там же и отладить.

AS> Ясно, спасибо.

AS>>> Протеус?

DO>> Фигня.

AS> В чем, если не секрет?

Все эти попытки симулировать окружение контроллера хороши только для демонстраций студентам, да и то под вопросом (по мне лучше показывать на "боевом" контроллере.

AS>>> И еще, что бы новую ветку не начинать, спрошу здесь: при AS>>> выводе на ЖКИ (HD44780) при помощи printf цифр, он же их в таблицу AS>>> кодировки epson не переводит? Так? А как правильно выпутаться из AS>>> этой ситуации? Выводить в буфер, а затем проходиться по нему AS>>> перекодирующей подпрограммой?

DO>> Hе надо. Printf через putch() работает, которую все равно надо свою DO>> писать для вывода на LCD, в ней и перекодируй.

AS> Hаверное я пока плохо знаю Си, поскольку не знаю что это за

Это не С, это организация библиотек. Ты правда не уточнил чем пользуешься, потому пришлось гадать. Но в любом случае, printf через какой-то низкоуровневый вывод работает, стандартного-то у контроллера нет. Значит его и надо написать, и в нем и перекодировать.

AS> FILE lcd_str = FDEV_SETUP_STREAM(lcd_putchar, NULL, AS> _FDEV_SETUP_WRITE);

AS> fprintf(&lcd_str, "Privet!");

AS> Думаю, в lcd_putchar и надо будет перекодировать.

Именно там.

dima

formatting link

Reply to
Dmitry Orlov

Привет, Dmitry!

25 мая 2006 18:18, Dmitry Orlov писал Andrey Samarin:

AS>>>> Протеус? DO>>> Фигня. AS>> В чем, если не секрет? DO> Все эти попытки симулировать окружение контроллера хороши только для DO> демонстраций студентам, да и то под вопросом (по мне лучше показывать DO> на "боевом" контроллере. Да собственно, мненя интересовала только отладка интерфейса управления устройством (т.е. меню :).

AS>> Hаверное я пока плохо знаю Си, поскольку не знаю что это за DO> Это не С, это организация библиотек. Ты правда не уточнил чем DO> пользуешься, потому пришлось гадать. Hо в любом случае, printf через DO> какой-то низкоуровневый вывод работает, стандартного-то у контроллера DO> нет. Значит его и надо написать, и в нем и перекодировать. Стандартный AVRlib из WinAVR.

AS>> FILE lcd_str = FDEV_SETUP_STREAM(lcd_putchar, NULL, AS>> _FDEV_SETUP_WRITE);

AS>> fprintf(&lcd_str, "Privet!");

AS>> Думаю, в lcd_putchar и надо будет перекодировать. DO> Именно там. Ясно. Большое спасибо за информацию.

С уважением, Андрей АКА Хомич, АКА UR3LTG. ... Подоконник (истоp.)-исполнитель сеpенад

Reply to
Andrey Samarin

Такого не может быть. Потому как write вообще имеет полное право отсутствовать -- он нигде в стандартной библиотеке не декларируется и есть только в unix. Тогда уж fwrite. Но зачем, если есть (из библиотеки функций не выкинешь) putchar под который НЕ НУЖНО выделять буфер неизвестно какого размера.

Reply to
Kirill Frolov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.