www.open-tager.ru

открытый лазертаг форум
Текущее время: 01 ноя 2024, 04:30

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: 15 окт 2011, 17:40 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
ASM писал(а):
Pingvin писал(а):
А кто-нибудь работал с avr под никсами?


Я работаю под GNU/Linux, всегда и везде.

Pingvin писал(а):
P.S. Удалось запустить с симулятором simulavr. Работает.


Поздравляю, а у меня оно предательски сегфолтится :-)
Хотя штука очень интересная, поддерживает Verilog для аппаратуры
и имеет swig, что позволяет использовать любой язык типо Python, Ruby, Perl
для коварных прикладных нужд...

Спасибо, интересная информация. Хотя я и языки то эти не знаю, но теперь будет стимул поинтересоапться. :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 окт 2011, 20:48 
Не в сети
Завсегдатай

Зарегистрирован: 13 авг 2011, 01:14
Сообщений: 153
Откуда: Moscow
Pingvin писал(а):
Спасибо, интересная информация. Хотя я и языки то эти не знаю, но теперь будет стимул поинтересоапться. :)


Рекомендую ударится в python, как наиболее перспективный на данный момент (его прикручивают везде).

_________________
LaserTag своими руками? Легко! http://3zu.ru/projects/lasertag/wiki


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 окт 2011, 10:01 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
ASM писал(а):
Pingvin писал(а):
Спасибо, интересная информация. Хотя я и языки то эти не знаю, но теперь будет стимул поинтересоапться. :)


Рекомендую ударится в python, как наиболее перспективный на данный момент (его прикручивают везде).

С питоном даже чего-то пробовал уже. :)
А не разъясните, как эти языки можно использовать в пректе?
Писать прошику прямо на этих языках?
И какие преимущества это дает?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 окт 2011, 14:11 
Не в сети
Завсегдатай

Зарегистрирован: 13 авг 2011, 01:14
Сообщений: 153
Откуда: Moscow
Pingvin писал(а):
ASM писал(а):
Pingvin писал(а):
Спасибо, интересная информация. Хотя я и языки то эти не знаю, но теперь будет стимул поинтересоапться. :)


Рекомендую ударится в python, как наиболее перспективный на данный момент (его прикручивают везде).

С питоном даже чего-то пробовал уже. :)
А не разъясните, как эти языки можно использовать в пректе?
Писать прошику прямо на этих языках?
И какие преимущества это дает?


Это интерпретаторы. Прошивку можно писать только на C и C++.
Эти языки можно использовать в любых других целях. Например, для разработки эмулятора и
графического интерфейса для него. В общем в прошивки нет ему места.

Преимущества: вы можете написать программу значительно быстрее, так как имеете
много дополнительных плюшек (в ущерб производительности, которая часто бывает не критична):
* Очень мощный и выразительный язык;
* Сборщик мусора;
* Динамическую (утиную) типизацию;
* Метопрограммирование, инстроспекцию.

_________________
LaserTag своими руками? Легко! http://3zu.ru/projects/lasertag/wiki


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 окт 2011, 14:40 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
А что народ думает по такому поводу:
Цитата:
BASINT
Интерпретатор языка Бейсик для AVR микроконтроллеров

В отличие от своего предшественника, тини бейсик контроллера, данный проект представляет собой программное обеспечение для AVR контроллеров ATMega 16/32/64. Сохранена концепция отсутствия специального программного обеспечения. При программировании контроллера с встроенным интерпретатором, достаточно гипертерминала и блокнота.

Поскольку, средой обитания BASINT является микроконтроллер, имеет смысл далее говорить не о программном продукте а об устройстве, которое пользователь должен подготовить, внести код интерпретатора. Для собственных нужд интерпретатор использует две ножки на этапе исполнения и ещё три ножки используется при загрузке пользовательской программы, остальные ножки могут быть использованы целевой задачей.

Самое близкое устройство по классу, по области применения - модули со встроенным интерпретатором BASIC STAMP фирмы Parallax

AVR контроллер, со встроенным интерпретатором BASINT предназначен для быстрой разработки (rapid development) устройств прежде всего непрофессионалами, людьми, которые представляют что нужно сделать, но не имеют возможности тратить время на профессиональный цикл разработки.


http://www.cqham.ru/tbcgroup/

Или это шагание по стопам Ардуно (или как там его...)?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 окт 2011, 14:55 
Не в сети
Завсегдатай

Зарегистрирован: 13 авг 2011, 01:14
Сообщений: 153
Откуда: Moscow
Pingvin писал(а):
http://www.cqham.ru/tbcgroup/

Или это шагание по стопам Ардуно (или как там его...)?


По моему хрень, на C/C++ куда проще и быстрее написать под AVR та, не говоря уже о том,
что для хорошей работы наверняка придётся часть на assember переписывать.

А если говорить о ядре по круче(на базе ARM, например), то туда можно lua запихать.

_________________
LaserTag своими руками? Легко! http://3zu.ru/projects/lasertag/wiki


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 ноя 2011, 20:25 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Или я чего то не так делаю, или avr-gcc неверно компилирует условия if else! :(
Код у меня почему то выполняется и в блоке if {...} и тут же лезет в else {...}! :shock:
Просто взрыв мозга! :x
Пришлоль вместо
Код:
if (a < 0 ) {бла... бла... бла...}
else {бла...бла..} // переменная а больше или равна 0


писать
Код:
if (a < 0 ) {бла... бла... бла...}
if (a>=0) {бла...бла..}

Никто ни сталкивался с такой проблемой?
Я один такой "везучий"? :?:

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 ноя 2011, 22:51 
Не в сети
Местный

Зарегистрирован: 13 июл 2011, 17:05
Сообщений: 475
Откуда: Perm
wtf?! и как это всё видится в ide через jtag? т.е. если пошагово выполнять, то заходит сначала в первые операторные скобки, а потом и во вторые? а так - эт либо это косяк компилятора, что маловероятно, тк в таком случае это будет видно в .lss файле, либо ошибка не там.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 ноя 2011, 05:55 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
tommy писал(а):
wtf?! и как это всё видится в ide через jtag? т.е. если пошагово выполнять, то заходит сначала в первые операторные скобки, а потом и во вторые? а так - эт либо это косяк компилятора, что маловероятно, тк в таком случае это будет видно в .lss файле, либо ошибка не там.

Именно так!
Сначала выполняются операторы в первых скобках (if), а затем,с чистой совестью, контроллер выполняет операторы в скобках else! :( :o :shock:
Именно при пошаговой отладке и обнаружил сей баг!
Или я уже настолько забыл Си, что синтаксис нарушаю?! :(
Вот конкретный глючный кусок кода:
Код:
/**************************************************************************************
* Обработчик прерываний timer1A
***************************************************************************************/

ISR(TIMER1_COMPA_vect){
TIMSK &=~_BV(OCIE1A); 
sei();
if (bullets >0)//если патроны не кончились
{
   if (last_simple == 0)
   {
      fire_led_status=ON; //включаем вспышку
   //   if (fire_mode()==queues) fire_led_status=FQR_4HZ;
   //   else fire_led_status=ON; //включаем вспышку
   }

   if (last_simple < sizeof(pSnd))//3913
         {
            if (last_simple==(sizeof(pSnd)/100)*CUT_OFF_SOUNT)
            {
               if (fire_mode()==queues)
               {
                  if ((get_keyboard_status()==key_pressed)&&(life>0)) //курок нажат, то отсекаем звук
                  {
                     bullets--;//уменьшаем на 1 количество патронов
                     send_ir_package();   //Производим "выстрел"
                     last_simple=0;      //воспроизводим звук сначала
                     fire_led_status=FQR_4HZ;
                  }
                  else    fire_led_status=ON;                  
               }
            }
            
            OCR0 = pgm_read_byte(&(pSnd[last_simple++]));
         }
   else
         {
         //   last_simple = 0;
         //   PORTA &= ~(1 << 2);
            OCR0 = 128; //Скважность = 0,5
            fire_led_status=OFF;
            //FIRE_LED_OFF;
         }


}

else //патроны кончились
   {
      BULLETS_OUT_LED_ON; // включаем светодиод "Патроны кончились"
      if (last_simple < sizeof(pSnd)) OCR0 = pgm_read_byte(&(pSnd[last_simple++]));//дадим выстрелу прозвучать до конца
      else fire_led_status = OFF; //СЮДА ЛЕЗЕТ, ДАЖЕ ЕСЛИ bullets >0!!!!
   }




Пришлось переписать этот кусок так:
Код:
/**************************************************************************************
* Обработчик внещних прерываний timer1A
***************************************************************************************/

ISR(TIMER1_COMPA_vect){
TIMSK &= ~_BV(OCIE1A);  //запрещаем прерывания timer1, чтобы не было рекурсии
sei();

if (bullets >0)//если патроны не кончились
{
   if (last_simple == 0)
   {
      fire_led_status=ON; //включаем вспышку
   //   if (fire_mode()==queues) fire_led_status=FQR_4HZ;
   //   else fire_led_status=ON; //включаем вспышку
   }
   else;
   if (last_simple < sizeof(pSnd))//3913
         {
            if (last_simple==(sizeof(pSnd)/100)*CUT_OFF_SOUNT)
            {
               if (fire_mode()==queues)
               {
                  if ((get_keyboard_status()==key_pressed)&&(life>0)) //курок нажат, то отсекаем звук
                  {
                     bullets--;//уменьшаем на 1 количество патронов
                     send_ir_package();   //Производим "выстрел"
                     last_simple=0;      //воспроизводим звук сначала
                     fire_led_status=FQR_4HZ;
                  }
                  else    fire_led_status=ON;                  
               }
               else;
            }
            else;
            
            OCR0 = pgm_read_byte(&(pSnd[last_simple++]));
         }
   if (last_simple >= sizeof(pSnd)&&(last_simple)!=0xFFFF)//3913
         {
         //   last_simple = 0;
         //   PORTA &= ~(1 << 2);
            OCR0 = 128; //Скважность = 0,5
            fire_led_status=OFF;
            //FIRE_LED_OFF;
         };


}


if (bullets <= 0) //патроны кончились
   {
      BULLETS_OUT_LED_ON; // включаем светодиод "Патроны кончились"
      if (last_simple < sizeof(pSnd)) {OCR0 = pgm_read_byte(&(pSnd[last_simple++]));}//дадим выстрелу прозвучать до конца
      else fire_led_status = OFF;
   };




Или я просто запутался в if else? :( :?
Где ошибка?
Есть у меня подозрения, что это связано с тем, что я прерывания разрешаю и где то в других обработчиках меняется значение регистра статуса, но, разве компилятор не сохраняет регистры при вызове обработчика?
Да и тогда, когда я не разрешал прерывания, вроде то же самое было.
Надо перепроверить!

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 ноя 2011, 06:39 
Не в сети
Новосел
Аватар пользователя

Зарегистрирован: 29 сен 2011, 20:28
Сообщений: 76
а чо у тебя после фигурной скобки точка с запятой идут :shock: ну и код у тебя лапша, писал бы в одном стиле :roll: и еще лучше было бы работать с объектами


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB