роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: Хочу узнать специфику языка С++ для микроконтролеров
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



Я ещё не начал программировать микроконтролер, а меня терзают смутные сомнения. Собственно из сомнений вытекают следующие вопросы:
    поддерживает ли С++ вещественные типы?
    поддерживает ли С++ массивы, записи?
    поддерживает ли С++ строкавые типы?
    а рекурсию?

Догадываюсь, что там нет объектного подхода, да это и понятно.[/list]
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Цитата:
поддерживает ли С++ вещественные типы?

Да. К примеру IAR точно.
Цитата:
поддерживает ли С++ массивы, записи?

Да
Цитата:
поддерживает ли С++ строкавые типы?

да
Цитата:
а рекурсию?
Догадываюсь, что там нет объектного подхода, да это и понятно.

Ну ткт смотря какой процессор и какой С... Например для АРМ все это вполне есть... Какие собсно контроллеры хотите программировать?
 
 Top
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



Виноват, простите. Уточняю. Все вопросы к статьям "Простейший робот на 1 микросхеме" и соответственно к микроконтроллерам семейства AVR.
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Вот собсно пример 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 век на дворе Ж)))
 
 Top
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



Сп-А-с-И-б-О!!!! Мне стало легче и жизнь снова наладилась. Улыбка Теперь можно и приступать к задуманному.
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Да всегда пжалста. Там поищите описание IAR AVR embedded c++. Там есть какие-то ограничения, я чесна гря не в курсе... Сам простой С пользую. Есть еще IAR AVR Extended embedded c++, там еще меньше ограничений... Вот чтоб эти 2 языка в IAR стали доступны нужно выбрать библиотеку DLIB... Иначе только простой С будет... Вот спрашивайте если чего. А что собсно собрались делать такое если не секрет?
 
 Top
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



У меня есть кое-какие азы в электронике. Сам я - программист. Вот хочу пошагово, как в примерах, собрать робота, а дальше есть где мне развернуться. Улыбка Так что пока всё тривиально. В принципе, всё готово. Осталось программатор собрать. Улыбка
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Понятно. Ну если хотите развернутся, да еще и с ооп, сразу могу посоветовать взять ATMEGA32, вот там действительно можно развернуться Ж))) Если чего, спрашивайте, помогу чем смогу...
 
 Top
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



Ещё раз спасибо. Дойдём и до ATMEGA32, ATMEGA64, ATMEGA128 (а дальше цены резко растут!!!). Улыбка Но начинать надо с азов. Запущу робота из примера, вникну как работает, и, наверняка, ещё не раз попрошу о помощи... Улыбка
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Просто Mega32 она в обычном дипе есть, а вот 64 и 128 они только в ткуфп, т.е. либо платку под них делать, либо плату - переходник покупать Ж))) Спрашивайте если чего Ж)))
 
 Top
Bar_Duck13 Post Id


Лейтенант


Сообщений всего: 26
Дата рег-ции: Янв. 2008  



OK. Возник ещё вопрос. Если МК содержит flash-память, то можно ли как нибудь записывать свои данные в эту память, чтобы использовать их при следующем включении?
 
 Top
gramozeka Post Id


Капитан


Сообщений всего: 51
Дата рег-ции: Янв. 2008  



Есть энергонезависимая память. EEPROM , можно использовать память программ, в которой можно хранить константы, например поисковые таблицы. Есче есть возможность самопрограмирования. Во флэше есть область загрузчика, камень может сам править или например стереть программу. Вообчще, чтобы работать с МК надо знать их архетектуру.
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Для того чтобы записывать / читать данные в / из flash, смотри команды ассемблера lpm (Load Program Memory) и spm (Store Program Memory) Там правда память страницами пишется... Внутренняя eeprom- какашко редкостное, для поделок куда еще не шло, а для чего-то серьезного совсем не годится Ж))) Как практика показывает если объемы не большие и скорости особой не надо, лучше всего на шину i2c повесить память типа 24C256... Если же нужна скорость и большие объемы, то самое лучшее решение- это карты памяти типа MMC и иже с ними. Вешаются на spi, я лично с ними на 8 Мбит/сек работал- все на ура Ж)))
 
 Top
Ivanchik Post Id



Рядовой


Сообщений всего: 4
Дата рег-ции: Сент. 2008  



Bar_Duck13 пишет:
поддерживает ли С++ вещественные типы?
поддерживает ли С++ массивы, записи?
поддерживает ли С++ строкавые типы?
а рекурсию?
Bar_Duck13 пишет:
У меня есть кое-какие азы в электронике. Сам я - программист. Вот хочу пошагово, как в примерах, собрать робота, а дальше есть где мне развернуться. Так что пока всё тривиально. В принципе, всё готово. Осталось программатор собрать.

И на каком языке вы программитуете если не секрет?
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru