Страница 1 из 3

AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 13:59:20
Johnson
Собственно, Сабж.
Есть ли компиляторы, "заточенные" для работы с AVR на паскале?
Или вообще любой компилятор для МК на паскале?
Привычнее он как-то...

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 14:11:24
YS
Есть.

Но для эмбеда Паскаль подходит плохо. Он слишком академичен (разрабатывался-то изначально для обучения), и потому многое из того, что на С делается естесственно, на нем необходимо делать с костылями. Да и синтаксис у него громоздкий.

Не подумайте, лет пять назад я тоже дико любил Паскаль. :) Но теперь пишу на С, и тому есть как субъективные, так и объективные причины.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 14:33:52
Johnson
Спасибо, почитаю!
Ну, к паскалю я просто привык. Сейчас активно пишу на Delphi...

По поводу "костылей" - "на вкус и цвет все фломастеры разные". Мое мнение относительно Си пока аналогично Вашему относительно Паскаля. Слишком уж я привык к нему.
Не отрицаю, возможно мое мнение изменится в вопросе языка для МК, но в качестве системного языка я изменять паскаю и его потомкам пока не хочу. :)

PS: Прочитал статью буквально за 10 секунд, через строчку. Паскаль как паскаль, как домой попал :) Только вот вопрос: а порты/прерывания/регистры? Реализованы, или необходимо "извращаться? И где скачать можно?

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 16:01:06
YS
где скачать можно?
Думаю, с этим поможет гугл и торренты. :)
а порты/прерывания/регистры?
http://we.easyelectronics.ru/AVR/mikrop ... azyka.html
Ну, к паскалю я просто привык.
Вы таки не поверите - полностью понимаю. :) Говорю же, сам плотно сидел на Паскале. Причем года три, наверное. И даже холиварил на стороне Паскалистов. :)
Не отрицаю, возможно мое мнение изменится в вопросе языка для МК
Изменится, если уйдете дальше мигалок и бегущих огней. :)
Сейчас активно пишу на Delphi...
Для прикладного программирования, на самом деле, пофиг на чем писать. И возможно Delphi для ПК даже удобнее.

Но вот на низком уровне С незаменим. Мощная работа с указателями, простое преобразование типов, идеологическая близость к железу - в Паскале со всем этим туго. Минус Си - программист должен четко понимать, что он делает, ибо возможно почти все. :)

Как бы то ни было, я рассказал Вам про Микропаскаль, дальше думайте сами. :)

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 16:15:58
YS
Не, не могу удержаться, простите. :) Немного агрументирую позицию насчет костылей. :)

Паскаль:

Код: Выделить всё

var

х : Real; 
у : array[1..3] of Integer absolute x;

begin

  х := pi;
  WriteLn(y[1]);

end.
(пример отсюда)

С:

Код: Выделить всё

#include <stdio.h>
#include <math.h>

float x;

void main(void)
{
  x=M_PI;

  printf("%i",((int*)(&x))[0]);
}
Причем задачи с подобным доступом достаточно распространены в эмбеде. То, что в Паскале делается тучей слов, в Си - пара скобочек. :)

Если на Паскале можно проще - напишите как. Я давно не писал на нем, может и забыл чего.

Еще интересная задача - вызов функции по адресу из таблицы.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 17:21:05
oleg110592
не любитетель паскаля, но програмки под пс чтоб разрабатывать легко и просто - после многих проб остановился на делфи. Разницы между си и паскалем особой не чувствую. Под пики есть неплохой паскаль PMP. Для авров наверное надо обратить внимание на продукт Микроэлектроники.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 17:41:41
YS
Разницы между си и паскалем особой не чувствую.
До тех пор, пока не лезете к железу, ее и не будет. :)

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 17:50:47
Flasher
Глобально писать по-фиг на чем. Хоть на бейсике. Только вот переход на другую платформу будет затруднен. Все платформы для программирования в качестве языка высокого уровня имеют и подрузамевают С. Да и другие языки- компиляторы часто считаются детскими, разрабатываются и ведуться побочной линией и сопровождаются не очень серьезно. Поэтому это вопрос скорее уровня разработок.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 18:51:07
YS
Да и другие языки- компиляторы часто считаются детскими, разрабатываются и ведуться побочной линией и сопровождаются не очень серьезно.
Ну не, на PC Паскаль вполне конкурирует с Си. На нем даже GUI Скайпа написан, есличо.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 19:28:54
Flasher
YS писал(а): Ну не, на PC Паскаль вполне конкурирует с Си. На нем даже GUI Скайпа написан, есличо.
Да? А я думал на Qt...
Речь шла не о PC -платформе.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 19:39:25
YS
Да? А я думал на Qt...
http://www.ginktage.com/2010/08/skype-a ... th-delphi/

Qt - не более, чем окружение.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 20:40:55
Johnson
Жаль, что простой вопрос о компиляторе начинает заходить в сторону холиваров...

Не люблю я их. Для меня паскаль - язык, который я понимаю. Там настолько же мощная поддержка указателей и приведения типов, если уметь всем этим пользоваться.
Насчет "костылей" - такое можно сказать о любом языке, на котором не умеешь писать.
Я вот не понимаю Си, потому что ни разу на нем серьезно не писал.
А на паскале пишу с 5 класса (получается, что уже больше 10 лет).
Изменится, если уйдете дальше мигалок и бегущих огней.
Ну, для таких целей МК мне не нужен.
Сейчас вот пытаюсь (пока безуспешно) завести ЖК дисплей, потом прикрутить к нему аудиопроцессор и прочий обвес...

Для МК не писал уже несколько лет, да и прошлую писанину серьезным программированием назвать трудно.
printf("%i",((int*)(&x))[0]);
На паскале есть аналогичная функция, правда, не приходилось ей пользоваться, ни разу не возникала потребность. Кстати, она в синтаксисе попроще немного... Насчет наличия её в оригинальном паскале не уверен, но во всех ООП версиях языка она есть.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 20:46:47
Satyr
YS писал(а): Но для эмбеда Паскаль подходит плохо. Он слишком академичен (разрабатывался-то изначально для обучения), и потому многое из того, что на С делается естесственно, на нем необходимо делать с костылями.
Это с какой стороны посмотреть :)))
Вобще, как правило костыли - это как раз то, что возможно сделать на Си, но невозможно в паскале. Паскаль более строгий язык.
Ну и теперь для критичных применений классический вольный Си не применяют. Городят всякие спецификации типа MISRA C и т.п.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 20:53:20
Flasher
Да пиши на чем угодно. Главное, чтоб удобно было и все работало.

Re: AVR + Pascal (?)

Добавлено: Вс июл 29, 2012 21:06:33
YS
На паскале есть аналогичная функция
Не, я не про функцию. Я про вот такой доступ:

Код: Выделить всё


float x;
int y;

...

y=((int*)(&x))[0];

...
Не холивара ради, мне правда интересно, как такого достичь на Паскале. Сто лет на нем не писал.
Ну и теперь для критичных применений классический вольный Си не применяют. Городят всякие спецификации типа MISRA C
Даже MISRA C не особо ограничивает программера. Си по своей природе гораздо свободнее.

Хотя, повторюсь, для прикладного программирования на PC особой разницы нет.

Re: AVR + Pascal (?)

Добавлено: Пн июл 30, 2012 04:53:00
Johnson
Не, я не про функцию. Я про вот такой доступ:
Эм... Как бы сказать. Я понятия не имею, что делает эта конструкция на Си :)

Re: AVR + Pascal (?)

Добавлено: Пн июл 30, 2012 08:25:08
Satyr
YS писал(а): Причем задачи с подобным доступом достаточно распространены в эмбеде.
У раздолбаев такое распространено не только в эмбеддиде :)))
И хорошо не тот язык, который такое допускает, а аккуратный программист, который обходится без такого.

Re: AVR + Pascal (?)

Добавлено: Пн июл 30, 2012 08:57:57
coredumped
Я сам начинал с Паскаля. Тогда еще не было виндовсов, но был прекрасный компилятор+IDE Turbo Pacal фирмы Borland. Паскаль - отличный, красивый язык, стараниями Borland был доведен до совершенства. К сожалению Borland забросил эту линию продуктов, и Паскаль существует сейчас, лишь благодаря сообществу программистов-энтузиастов. Писать на Паскале для МК можно, равно как и на Бейсике или еще на каком-то языке. Проблема в том, что кода на С и ASM написано для МК в десятки раз больше, чем на всех остальных языках, вместе взятых. А это немаловажно - наличие огромного количества библиотек и готовых решений. Даже не знаю, каким надо быть энтузиастом, чтоб продолжать биться с Паскалем, когда логичнее и проще "персесть" на С (хоть он конечно и урод, по сравнению с Паскалем).

Re: AVR + Pascal (?)

Добавлено: Пн июл 30, 2012 09:41:44
BCluster
YS писал(а): y=((int*)(&x))[0];
Даже мне как заядлому сишнику страшно на это смотреть )))))))))))))

На самом деле касты и мощная работа с указателями это очень важно для эмбеда.
Касты часто нужны. И не всегда от них можно избавиться. Я их весьма часто применяю чтоб структуру сохранить в буфер например. Ну куча вариантов )
Философия Си больше подходит для таких применений. В школе когда учился активно использовал паскаль, но си завоевал мое сердце )) Для виндов пишу на C#.

Re: AVR + Pascal (?)

Добавлено: Пн июл 30, 2012 10:07:11
Satyr
BCluster писал(а): На самом деле касты и мощная работа с указателями это очень важно для эмбеда.
Я бы сказал, это очень удобно для леньтяев и раздолбаев (и сам так порой делаю. взгляните правде в лицо), которым лениво/не умеют изящно описывать типы, структуры данных.
А уж как для платформонезависимости это полезно... :)))