roboforum.ru

Технический форум по робототехнике.

Basic и Arduino

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Basic и Arduino

Сообщение petrov1962 » 28 мар 2017, 13:47

Eruman писал(а):


И еще почему
#include "../Wire/Wire.h"
Какая-то другая библиотека wire.h используется?
petrov1962
 
Сообщения: 7
Зарегистрирован: 25 мар 2017, 10:40

Re: Basic и Arduino

Сообщение Eruman » 28 мар 2017, 19:06

Пример рабочий 100%. Ошибки могут возникать при несовместимости библиотек, например, из-за разных версий. IDE 1.6.9 Скопировал из текстового поля в сообщении forum86/topic16626-30.html#p357516
Все собралось корректно.

А первая версия, без EEPROM, собирается?
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение petrov1962 » 28 мар 2017, 20:28

Eruman писал(а):Пример рабочий 100%. Ошибки могут возникать при несовместимости библиотек, например, из-за разных версий. IDE 1.6.9 Скопировал из текстового поля в сообщении forum86/topic16626-30.html#p357516
Все собралось корректно.

А первая версия, без EEPROM, собирается?

Первая версия без ПЗУ собирается без проблем.
Можно попросить вас выложить библиотеки Wire и C24LC16B, которые вы используете?
То что текст программы правильный, я не сомневаюсь.
Такая же катавасия происходит при компиляции оригинального TinyBasic с поддержкой SD карты,
при чем, что отдельные скетчи SD карту видят и работают с ней.
petrov1962
 
Сообщения: 7
Зарегистрирован: 25 мар 2017, 10:40

Re: Basic и Arduino

Сообщение Eruman » 29 мар 2017, 13:39

Wire стандартный, по умолчанию.
Вторую либу прилагаю. Позже я от нее, кстати, отказался. Все силами стандартных библиотек получилось. Позже выложу, если интересно, там чуть замороченнее.
Вложения
c24LC16B.rar
(1.76 КиБ) Скачиваний: 0
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение petrov1962 » 29 мар 2017, 14:19

Спасибо за библиотеку, по крайней мере теперь компилируется без ошибок,
вечером попробую загрузить в мегу.
Эта либа немного отличается от той, на которую идет ссылка в теле файла TinyBasicEruman02.ino.
Может, поправить ссылку на нее в теле скетча?
В новой либе используются Wire.write вместо Wire.send и
Wire.read вместо Wire.receive.
Вот у меня из-за этого ошибки и сыпались.

Интересно посмотреть, как вы обошлись стандартными либами.
petrov1962
 
Сообщения: 7
Зарегистрирован: 25 мар 2017, 10:40

Re: Basic и Arduino

Сообщение Eruman » 29 мар 2017, 18:24

Действительно, вспомнил, я правил в либе эти строки. Просто машинально, автозаменил, и в памяти не отложилось :D
В заголовке пишу
Код: Выделить всёРазвернуть
//#define needEEPROM 1          // подключать ли внешнюю ППЗУ? (1 - внешняя, 0 - ПЗУ МК)
//#define sizeROM_over16 1      // ППЗУ>2K?  ( 1 для 24с64, 0 для 24с16)

//...
#ifdef needEEPROM
#include <Wire.h>
#else
#include <EEPROM.h>
#endif


В программе обращения настроены на две функции работы с ППЗУ
Код: Выделить всёРазвернуть
void writeEEPROM(unsigned int eeaddress, byte data )
{
#ifdef needEEPROM
  Wire.beginTransmission(disk1);
#ifdef sizeROM_over16
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
#else
  Wire.write((int)(eeaddress));
#endif
  Wire.write(data);
  Wire.endTransmission();
  //delay(15);
#else
  EEPROM.write((int)eeaddress,(byte)data);
#endif
}

byte readEEPROM(unsigned int eeaddress )
{
  byte rdata = 0xFF;
#ifdef needEEPROM
  Wire.beginTransmission(disk1);
#ifdef sizeROM_over16
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
#else
  Wire.write((int)(eeaddress));
#endif
  Wire.endTransmission();
  Wire.requestFrom(disk1, 1);
  // if (Wire.read()) rdata = Wire.read();
  rdata = Wire.read();
#else
  rdata = EEPROM.read( (int)(eeaddress) );
#endif
  return rdata;
}


В заголовке раскомментируем нужные строки, и пользуемся. Так можно настроить на разные микросхемы ППЗУ и вообще пользоваться внутренней ПЗУ атМеги.
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение petrov1962 » 29 мар 2017, 22:34

Eruman писал(а):Действительно, вспомнил, я правил в либе эти строки.

В программе обращения настроены на две функции работы с ППЗУ


Поправил библиотеку - все заработало.

В какую часть программы надо вставить эти две функции работы с ППЗУ?

Пытаюсь найти в теле программы что надо изменить для Меги328, поскольку она обладает в 2 раза больше памятью.

При применении ППЗУ большей емкости количество блоков по 256 байт можно увеличить?
petrov1962
 
Сообщения: 7
Зарегистрирован: 25 мар 2017, 10:40

Re: Basic и Arduino

Сообщение Eruman » 30 мар 2017, 01:19

Первая в заголовок (перед setup()), вторая - в конце листинга, там где идет обращение к ППЗУ. После удаления предыдущей функции работы с ППЗУ и библиотеки c24lc16b все обращения будут видны как ошибки. заменить после этого старые обращения на новые автозаменой.

Можно увеличить. И поправить строку "static unsigned char bmemory[312];" в большую сторону
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение Eruman » 21 апр 2017, 08:24

Запустил Бейсик на stm32f103. Брал тут: https://ru.aliexpress.com/item/Free-Shipping-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32473214083.html.
Оперативной памяти 20К, флеш шикарен. Только нет ППЗУ, и пятивольтовые микросхемы подключать нельзя, но это решаемо. В общем, рекомендую. :good:
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение Madf » 21 апр 2017, 12:33

STM - неинтересно, там памяти до уопы и нет такой массовости (дуни на нах не дешевые). Вся прелесть проекта на атмеге, что из г+палки получаем аля виртуальную машину, вообще с таким подходом можно и денди эмулировать и много чего (где не требуется производительность или она меньше..).
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Basic и Arduino

Сообщение Eruman » 21 апр 2017, 19:05

104р. - дорого? массовости нет? :ROFL: Может быть я не ясно выразился, но её программировал в Arduino IDE.

Мне понравилось, прикрутил к ней SD-карту, и вообще красота, Бейсик с кладовочкой :D
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение petrov1962 » 08 май 2017, 23:23

Еще интересный проект на Ардуино. Tiny Basic запускается из под эмулируемой ОС CP/M.
https://acdc.foxylab.com/node/76
petrov1962
 
Сообщения: 7
Зарегистрирован: 25 мар 2017, 10:40

Re: Basic и Arduino

Сообщение Eruman » 09 май 2017, 11:48

Классный проект, однако без ОЗУ - только эксперимент, не более.
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: Basic и Arduino

Сообщение Angel71 » 09 май 2017, 14:48

basic и pascal давно померли, не тратьте время на них.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Basic и Arduino

Сообщение ATLab » 09 май 2017, 16:24

Добавит FRAM, будет эмуляция ОЗУ, а проект действительно интересный.

Eruman писал(а):Запустил Бейсик на stm32f103.

Я тоже запустил Бейсик на STM32F103C8T6, в основе лежит проект https://github.com/robinhedwards/ArduinoBASIC
Кое-что пришлось подрихтовать под STM32, попутно добавил Beep - генерцию звука.
DSC_4563_hf_.JPG

Спасибо всем, что подкинули идею, теперь представляю как можно сделать свой интерпретатор.
ATLab
 
Сообщения: 11
Зарегистрирован: 14 мар 2007, 12:15
Откуда: Россия

Пред.След.

Вернуться в Arduino и другие Xduino

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

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