roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 20:13

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




Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 08 июл 2011, 11:27 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Т.е. в пике нету нормального стека? А что кстати там, совсем нету стека или какой-то убитый неполноценный?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 08 июл 2011, 11:50 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
в пике есть стек, но он неадресуемый и его глубина ограничена.
Поэтому на нем нельзя держать локальные переменные, с рекурсией возникают проблемы, и вообще невозможна вытесняющая многозадачность.

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

Добавлено спустя 1 минуту 11 секунд:
Это касается "старых" пиков ( пик18 например). Про dsPIC не скажу - не знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 15:57 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Цитата:
у cvavr очень хороший визард , это очень удобно для начинающих , кто не совсем разобрался с переферией МК , за это ему огромный плюс)))

Было бы дико круто если он генерил код вот так:
Код:
TCCR1A |= (1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 16:22 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Цитата:
.... это очень удобно для начинающих , кто не совсем разобрался с переферией МК ....

... и никогда не разберется

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 16:58 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
blindman писал(а):
Цитата:
.... это очень удобно для начинающих , кто не совсем разобрался с переферией МК ....

... и никогда не разберется

не факт !
будет желание разберется.....

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 22:20 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Соглашусь с Андреем, вряд ли будет у большинства желание вникать в архитектуру МК, если мастер за них все делает

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 22:37 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Глупости. Не вижу никакого криминала, если поставив несколько галочек на ПОРТА ввод-вывод получаем генеренную строку типа PORTA=0x1A; DDRA=0x67;
Т.е. по вашему если я как дурак считаю эти цифры вручную, я разбираюсь, если ставлю галочки, то нет и никогда не разберусь. Может и калькулятором тогда не пользоваться? Облегчать / ускорять труд это не по феншую?
Или выставление UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x08; без мастера признак офигенной крутизны?
Я использую мастер как удобный калькулятор и/или справочник, дабы не лазить за каждым числом в даташит. Если кто-то помнит все это наизусть, ради бога. Значит у этого человека хорошая память или он этим часто пользуется не больше и не меньше. Знание архитектуры МК тут совершенно не при чем. Как уже сказали кто захочет, тот разберется, а кто не захочет - будет использовать копу-пасте в тех компиляторах, где нет визарда.
Инструмент это всего лишь инструмент и умение от него зависит очень слабо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 22:59 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Не передергивайте.
Реплика была в ответ на фразу:
"это очень удобно для начинающих, кто не совсем разобрался с периферией".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 23:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
HarryStar писал(а):
Глупости. Не вижу никакого криминала, если поставив несколько галочек на ПОРТА ввод-вывод получаем генеренную строку типа PORTA=0x1A; DDRA=0x67;
Т.е. по вашему если я как дурак считаю эти цифры вручную, я разбираюсь, если ставлю галочки, то нет и никогда не разберусь.

Там же всё просто, можно и в уме это делать. Надо всего лишь 4 бита преобразовать в одну 16-ричную цифру, скажем 1101b это 8+4+1=13, т.е. 15=F, 14=E, значит 13=D :)

Другое дело для кучи МК помнить названия регистров и положения бит, скажем включающих PWM в нужном режиме, это да, проблема :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 11 июл 2011, 23:21 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Так я про то и говорю. Мастер не генерит код, он только дает некоторое количество справочной информации. И это правда удобно для начинающих. Мне, например, помогло при: мигании светодиодов, работой с АЦП, с таймерами, с внешними прерываниями, с LCD.
Помогли встроенные библиотеки с LCD, SD+FAT (хотя с SD пришлось долго ковыряться).

Вот почему не сделали удобный интерфейс по фьюзам в зависимости от выбранного МК непонятно. Популярности это бы добавило. А так пришлось 1-2 часа разбираться первый раз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 12 июл 2011, 00:33 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Смотрю некоторые любят блобы вместо человекопонятных записей...

Добавлено спустя 1 минуту 12 секунд:
Так может это и не люди вовсе, а роботы?

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 12 июл 2011, 12:12 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
HarryStar писал(а):
Мастер не генерит код, он только дает некоторое количество справочной информации. И это правда удобно для начинающих.

Набери "Declare your local variables here" в поиске по форуму. А потом покажи в найденных кусках кода "некоторое количество" справочной информации, отличное от нуля

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 12 июл 2011, 22:13 
Не в сети
Аватара пользователя

Зарегистрирован: 07 сен 2009, 20:06
Сообщения: 333
прог. языки: c, c#
ФИО: Евгений
Цитата:
Или выставление UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x08; без мастера признак офигенной крутизны?

Скорее признаком "плохого тона", потом вспоминай что это значит, через логич. операции, да еще с названиями битов понятнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 13 июл 2011, 00:04 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
2osc, а вы не пишите так, чтоб через время сами не смогли понять. как говориться - не можешь петь, не мучай горло.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите в Си AVR
СообщениеДобавлено: 13 июл 2011, 09:32 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Я понимаю Osc, что вы имеете в виду строки типа UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(1<<UDRIE);
Но они нужны там, где предполагается менять соответствующие биты. Если же у меня эта конфигурация битов постоянная, то число ничем не хуже, это лишь дело привычки. Хотя согласен, если бы визард генерил подобные строки, было бы гораздо лучше, особенно для новичков.

Но в любом случае наличие визарда ничему не противоречит. Им можно не пользоваться, генеренный им код можно (и нужно) переделывать под себя. Про "Declare your local variables here" я вообще молчу. Визард генерит шаблон, который предполагает его полную переделку. Если же кто-то оставляет подобные строки без изменений - это лишь его личная проблема, а не недостаток среды разработки.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO