PDA

Просмотр полной версии : Программирование в Pascal (сишники идут лесом)



Smalovsky
13.12.2016, 19:27
Начал изучать микроконтроллеры AVR и mikroPascal.
Однако сразу столкнулся с проблемами.
Хотелось бы получить помощь.

Не могу запустить таймер для ATmega128. Пробовал получить значение счётчика напрямую и через прерывания в процедурах.
В отладчике не видно изменения.
Вот текст программы:

program MyProject1;

{ Declarations section }
var
i: integer;
Procedure getTimerCount(var count: integer);
begin
count:=TCNT0;
end;
Procedure T0; iv IVT_ADDR_TIMER0_OVF; ics ICS_AUTO;
begin
PORTB:= TCNT0;
end;

begin
{ Main program }
DDRB:=$FF;
ASSR.AS0:=0;
TCCR0:=0;
TCCR0.CS00:=1;
TIMSK.TOIE0:=1;
asm SEI end;
while TRUE do
begin
getTimerCount(i);
PORTB:=Lo(i);
end;

end.

Ewgeny7
15.12.2016, 00:06
[ворчу]
CODEVISION AVR - Си для начинающих. Эта среда программирования разве что за пивом для тебе не сбегает, остальное все сама создаст, напишет комментарии, разжует и поучит примерами, завалит готовыми библиотеками. В интернетах есть некашляющие версии, и - целая книга Лебедева по CVAVR на русском языке, толстенная!
И главное - научит Си.
Садись далее хоть в Студию, хоть GCC, хоть оставайся там же.
Что ж вас всё то на бейсики, то на паскали для АВР колбасит... Это же не ретро-компьютеры! :)
[/наворчался]

CodeMaster
15.12.2016, 07:15
И главное - научит Си.

А если на него аллергия? Я вот сколько брался за Си не смог его переварить, возможно потому, что как непрофессионалу он мне на перспективу не нужен.

Smalovsky
16.12.2016, 22:29
Как собрать Free Pascal Compilier для AVR?
http://wiki.freepascal.org/AVR
Компилятор для ардуино и компилирует прошивку совместимую с загрузчиком ардуино.

4ugui
20.12.2016, 09:45
Человек с аватаркой котика Ewgeny7 прав, бейсик для ностальгии , мб паскаль тоже (у меня лично на паскаль рвота)
Совет для Codemaster, т.к. я сам сталкивался с проблемой обучения С и С++ после того как уже знал бейсик и ассемблер (для спектрума конечно). Нужно начинать с хороших книг, не смотрел что такое "CODEVISION AVR - Си для начинающих" но могу сказать следующее, когда смотришь какой то чужой код, особенно библиотечный или возможно автогенерируемый то там такой синтаксис что ахтунг, огромная куча левых подчеркиваний, символы && * в перемешку так накручены что хрен поймешь че это такое.
Могу посоветовать книгу (правда на английском) Professional C++ - (уже есть 3-е издание мб и даже больше) автор Марк Грегори (Marc Gregoire) очень классная книга. Объясняю как читать, лирику пропускаешьт, смотришь на примеры кода и набираешь у себя один в одни, первые примеры все собираются, идут без пробелов и упущений (лучше собирать в Visual Studio но там показан пример как в линуксе из командной строки это делать, можно для линукса брать codelite например годная студия тоже легка в освоении, но если 100% новичок бери visual studio) сразу набираешь, компилируешь смотришь в дебагере что получается, можешь в студии правой кнопкой во время дебага по коду клацать и выбрать "show disassembly" увидишь во что компилирует, станет возможно еще понятнее если с асмом знаком (ну спектрумщики все должны быть знакомы :)) Как только начнешь встречать примеры которые перестают собираться поймешь что в них уже есть много пропусков, код не полный, но к этому моменту ты уже осознаешь что основу языка знаешь полностью, а дальше развить навык уже дело техники. Как то так рекомендую сделать переход на Си
Успехов в начинании.

dosikus
20.12.2016, 10:52
4ugui, Рвотные позывы у CodeMaster из-за того что его вовремя не пнули в нужном направлении.
Самое главное начать правильно, дабы не было истерик типа " огромная куча левых подчеркиваний, символы && * в перемешку так накручены что хрен поймешь че это такое"
И здесь облегчалки и компиляторы языка внешне похожего на С (CVAVR и все без исключения продукты микроЕ) только во вред.
Тулчайн нужен вменяемый без встроенных облегчалок , и не "С для AVR" или пЫк. C он и в Африке С.

Литература так же нужна соответствующая :

Для самых начинающих.

Андрей Богатырев. Руководство полного идиота
по программированию (на языке Си)
http://www.lib.ru/CTOTOR/starterkit.txt_with-big-pictures.html
Язык программирования Си
Брайан Керниган, Деннис Ритчи
http://www.r-5.org/files/books/computers/languages/c/kr/Brian_Kernighan_Dennis_Ritchie-The_C_Programming_Language-RU.pdf
Как оформлять модули (июль, 2010 г.) (В. Тимофеев)
http://www.pic24.ru/lib/exe/fetch.php/osa/articles/c_modules.pdf


Для осознаия основ компиляции и структуры проекта на С
Первые несколько лекций (там где С)
https://www.lektorium.tv/course/22825

CodeMaster
20.12.2016, 16:36
Совет для Codemaster, т.к. я сам сталкивался с проблемой обучения С и С++

Мне уже поздняк метаться с обучением, а ранее он не был мне так нужен, что бы я этим сильно озадачился.

Smalovsky
20.12.2016, 20:22
Прям секта сишников. Не успели о Паскале заикнуться - сишники уже попёрли.))
Вообще, от чего такая неприязнь к Паскалю. Паскаль - красивый и хороший язык программирования.
Кто-что думает о AVRco Pascal?
http://www.e-lab.de/AVRco/index_en.html
Кстати, там есть интересная надпись о си:

Programming in C is:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
and hunting for pointer BUGs for ever ...............
http://www.e-lab.de/img/comics15d.gif

Ewgeny7
20.12.2016, 20:24
Я использую Паскаль в двух ипостасях, в Дельфи на винде и в VHDL в Квартусе. Поэтому я отнюдь не сектант Си. Но микроконтроллеры - это Си. Аминь.

Smalovsky
20.12.2016, 21:12
Вообще, я прочёл, что на Паскале было написано управление космическим аппаратом:

Cosmos1 Solar Sail
This space vehicle has been launched to test whether the sun winds can drive a satellite without an own motor. The control equipment is partially build with AVRs.
All AVRs are programmed with the E-LAB AVRco Profi version Pascal development system.
We at E-LAB Computers are very proud about the fact that our development system was choosen to build the firmware of the build-in AVRs.
http://www.e-lab.de/diverse/diverse.htm#cp
https://en.wikipedia.org/wiki/Cosmos_1

Tronix
20.12.2016, 22:44
Паскаль прекрасный красивый язык программирования. Используюf до сих пор в виде дельфи, если надо формочку под виндой накидать или в виде фри Паскаль для простой консольной утилитки для автоматического парсинга какихнибуть логов или других операций с файлами. В микроконтроллерах, особенно ARM, только си без вариантов. В восьмибитках иногда проще на асме, но если лень, то тоже си.

Oleg N. Cher
20.12.2016, 22:46
Но микроконтроллеры - это Си. Аминь.

И ПЛИС (FPGA), и Cortex'ы легко программируются на Обероне, наследнике Паскаля.

https://www.youtube.com/watch?v=zlnj6FCY1tYhttps://www.youtube.com/watch?v=mGi03zjahwY
Уже не говоря про Arduino и семейство Raspberry Pi.

Есть и более "самопальные" разработки типа компилятора в код AVR.

Tronix
20.12.2016, 23:00
Да можно конечно и на брейнфаке кодить для армов. И не удивлюсь, если всякие фортраны тоже есть. Но когда встаёт задача сделать что-то чуть сложнее мигания светодиодом или сложения пары чисел, например шифрования по ГОСТ или там на крайняк вычисления md5, то как все прекрасно понимают, писать данный велосипед придётся с нуля

s_kosorev
21.12.2016, 01:34
И ПЛИС (FPGA), и Cortex'ы легко программируются на Обероне, наследнике Паскаля.
это как так? где сказать синтезируемый оберон?

Oleg N. Cher
21.12.2016, 01:49
Вирт спроектировал компьютер на ПЛИС и сделал для него реализацию системы Oberon:

https://en.wikipedia.org/wiki/Oberon_(operating_system)#Project_Oberon_.28FPGA.2 9http://www.projectoberon.com
А для Cortex'ов есть компилятор Александра Ширяева (на видео показана работа именно с ним), берётся здесь:

https://github.com/aixp/O7
Есть ещё закрытый коммерческий компилятор Astrobe:

http://astrobe.com
Ребята берут из него заголовки-описатели разных моделей контроллеров, но я слышал, что этот компилятор проигрывает открытому компилеру Ширяева.

s_kosorev
21.12.2016, 02:16
программирование для процессора в плис и самой плис это 2 разных полюса

- - - Добавлено - - -

в плис можно от avr до pentium затолкать, можно на питоне кодить в запиханый пентиум, но от этого питон не станет языком для описания дизайна плис

- - - Добавлено - - -

единственный язык который не был придуман для плис но при этом синтезируется это Си(как это не странно) со специальными либами

- - - Добавлено - - -

посмотрел на исходники проца, студентов учить пойдет, так как проц очень простой, без конвеера итд, но реально c тем же народным MIPS даже рядом не лежал.
В общем проц от вирта как и все его языки, предназначен для обучения студентов, просто некоторые это не поняли и пытаются протолкнуть его там где им не место, если бы Borlad не вылезла на свет, о паскалях только в очень древних книгам можно было бы узнать ну и из википедии

Oleg N. Cher
21.12.2016, 02:34
А чем микроконтроллер, процессор или язык программирования для обучения студентов отличается от для промышленного использования?

Тезис Вирта - предельная простота, аппаратная и программная. И вытекающая из неё надёжность.

Паскаль - отличный язык, на нём разработано много хорошего софта.

CodeMaster
21.12.2016, 08:15
А чем микроконтроллер, процессор или язык программирования для обучения студентов отличается от для промышленного использования?

Можно в другой теме углубляться в это? Тут и так и одного ответа по теме нет.

s_kosorev
22.12.2016, 02:13
Студенческие эффективны в обучении пром в эксплуатации ваш КО

Smalovsky
29.12.2016, 00:02
Мультиплатформенная среда быстрой разработки на Паскале:
http://www.pilotlogic.com/sitejoom/
Прошу админов переименовать тему в Программирование на Pascal.

s_kosorev
29.12.2016, 00:30
Не, лучше так, "Программирование на паскале без магии и убийств!"

- - - Добавлено - - -

Или так, "Как написать игру на паскале и никого не убить?"

- - - Добавлено - - -

Или даже так "200 строк кода на пасклале без единого взмаха волшебной палочки!"

Smalovsky
29.12.2016, 21:23
s_kosorev,
Значит, на си магия и убийства?)) Это понятно, по качеству большинства игр, которые написаны на си - думы, квейки, и прочая лажа и мерзость.
Удручает, что сишники сейчас лезут на Паскаль, и тащат разный негатив.
Не ну, использование си ещё как-то оправдано в сфере микроконтроллеров и операционных систем. Но в области прикладного программирования си не нужен.
А вообще, Паскаль - супер язык программирования!

Oleg N. Cher
29.12.2016, 23:09
Smalovsky, это сишники так самоутверждаются, смешивая Паскаль с *****м. Совсем забыли, что это просто инструмент. ;-) А в инструментарии так - берут, что лучше подходит. Никто не будет ради гвоздя подгонять дизель-молот — устройство для забивания свай в землю. Поэтому-то мне и нравится наследник Паскаля и Модулы — Оберон, это маленький и простой язык. Но прекрасно подходит даже для разработки софта для космоса (http://comdivbyzero.blogspot.com/2014/05/blog-post.html) и АЭС (http://www.inr.ac.ru/~info21/oberon_innovation/oberonRostovAES.htm).

На Паскале написано огромное количество прекрасного софта. Мои любимые Total Commander, KMPlayer, RNQ, Demagog, EmuZWin, CodeTyphon, syn Text Editor и много-много ещё! И для ОСестроения Паскаль вполне годится — OS/2, кстати, была написана на нём. И, я слышал, первая версия Windows тоже.

Просьба к модераторам не ругаться на сообщения не по теме. Всё равно MikroPascal обсуждать практически некому — на нём здесь почти никто не программирует. s_kosorev, я специально не развиваю затронутую тему "для обучения" vs "для промышленности" — мы слишком по-разному смотрим на эти вещи.