Я ещё не начал программировать микроконтролер, а меня терзают смутные сомнения. Собственно из сомнений вытекают следующие вопросы:
поддерживает ли С++ вещественные типы?
поддерживает ли С++ массивы, записи?
поддерживает ли С++ строкавые типы?
а рекурсию?
Догадываюсь, что там нет объектного подхода, да это и понятно.[/list]
Цитата: поддерживает ли С++ вещественные типы?
Да. К примеру IAR точно.
Цитата: поддерживает ли С++ массивы, записи?
Да
Цитата: поддерживает ли С++ строкавые типы?
да
Цитата: а рекурсию?
Догадываюсь, что там нет объектного подхода, да это и понятно.
Ну ткт смотря какой процессор и какой С... Например для АРМ все это вполне есть... Какие собсно контроллеры хотите программировать?
Виноват, простите. Уточняю. Все вопросы к статьям "Простейший робот на 1 микросхеме" и соответственно к микроконтроллерам семейства AVR.
Вот собсно пример IAR embedded c++ AVR:
#include <iom32.h>
#include <stdio.h>
typedef struct
{
int PartNumber;
float Price;
} PartType;
class BaseClass
{ private:
int x; //Data member
int y; // Data member
public:
BaseClass()
{
x = 0;
y = 0;
}
~BaseClass()
{}
int Add()
{
return x+y;
}
};
double a,b;
char mass[16];
PartType Part;
BaseClass NewClass;
int main()
{
//Вот собсно вещественные числа
a=0.0025;
b=123.456;
a=a*b;
//массив
for(unsigned char i=0;i<16;i++)
{
mass[i]=i*2;
}
//структура
Part.PartNumber=0;
Part.Price=a;
//Вот ваша ооп...
a=NewClass.Add();
return 0;
}
Насчет строк, там есть класс стринг, но мне лениво с ним разбиратсо... Поставьте да поиграйтесь Ж)))) Вот так то 21 век на дворе Ж)))
Сп-А-с-И-б-О!!!! Мне стало легче и жизнь снова наладилась.
Теперь можно и приступать к задуманному.
Да всегда пжалста. Там поищите описание IAR AVR embedded c++. Там есть какие-то ограничения, я чесна гря не в курсе... Сам простой С пользую. Есть еще IAR AVR Extended embedded c++, там еще меньше ограничений... Вот чтоб эти 2 языка в IAR стали доступны нужно выбрать библиотеку DLIB... Иначе только простой С будет... Вот спрашивайте если чего. А что собсно собрались делать такое если не секрет?
У меня есть кое-какие азы в электронике. Сам я - программист. Вот хочу пошагово, как в примерах, собрать робота, а дальше есть где мне развернуться.
Так что пока всё тривиально. В принципе, всё готово. Осталось программатор собрать.
Понятно. Ну если хотите развернутся, да еще и с ооп, сразу могу посоветовать взять ATMEGA32, вот там действительно можно развернуться Ж))) Если чего, спрашивайте, помогу чем смогу...
Ещё раз спасибо. Дойдём и до ATMEGA32, ATMEGA64, ATMEGA128 (а дальше цены резко растут!!!).
Но начинать надо с азов. Запущу робота из примера, вникну как работает, и, наверняка, ещё не раз попрошу о помощи...
Просто Mega32 она в обычном дипе есть, а вот 64 и 128 они только в ткуфп, т.е. либо платку под них делать, либо плату - переходник покупать Ж))) Спрашивайте если чего Ж)))
OK. Возник ещё вопрос. Если МК содержит flash-память, то можно ли как нибудь записывать свои данные в эту память, чтобы использовать их при следующем включении?
Есть энергонезависимая память. EEPROM , можно использовать память программ, в которой можно хранить константы, например поисковые таблицы. Есче есть возможность самопрограмирования. Во флэше есть область загрузчика, камень может сам править или например стереть программу. Вообчще, чтобы работать с МК надо знать их архетектуру.
Для того чтобы записывать / читать данные в / из flash, смотри команды ассемблера lpm (Load Program Memory) и spm (Store Program Memory) Там правда память страницами пишется... Внутренняя eeprom- какашко редкостное, для поделок куда еще не шло, а для чего-то серьезного совсем не годится Ж))) Как практика показывает если объемы не большие и скорости особой не надо, лучше всего на шину i2c повесить память типа 24C256... Если же нужна скорость и большие объемы, то самое лучшее решение- это карты памяти типа MMC и иже с ними. Вешаются на spi, я лично с ними на 8 Мбит/сек работал- все на ура Ж)))
Bar_Duck13 пишет:поддерживает ли С++ вещественные типы?
поддерживает ли С++ массивы, записи?
поддерживает ли С++ строкавые типы?
а рекурсию?
Bar_Duck13 пишет:У меня есть кое-какие азы в электронике. Сам я - программист. Вот хочу пошагово, как в примерах, собрать робота, а дальше есть где мне развернуться. Так что пока всё тривиально. В принципе, всё готово. Осталось программатор собрать.
И на каком языке вы программитуете если не секрет?