roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 май 2025, 15:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 67 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 05 апр 2008, 11:17 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
почему же не устраивает... Возможно и устроит. По функционалу сильно отличается от Codevision?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 05 апр 2008, 12:38 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
хе, cv - си компилятор
bascom - васик

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

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 05 апр 2008, 13:00 
Не в сети
Аватара пользователя

Зарегистрирован: 16 окт 2007, 11:57
Сообщения: 349
Откуда: Минycинck
Это понятно. Слышал легенду, что возможности BASICа гораздо ниже чем С, и BASIC был скорее всего для начинающих "хакеров" чем для прифессионалов. Времена конечно меняются, возможно щас на БАСИКЕ писать серьёзный софт, и чтобы не было "дифицита" по поводу каких либо возможностей?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 14 апр 2008, 23:28 
Не в сети

Зарегистрирован: 22 мар 2008, 21:01
Сообщения: 23
Откуда: Белгород
Skype: dackinevitch_yan
прог. языки: C/C++
loid писал(а):
Это понятно. Слышал легенду, что возможности BASICа гораздо ниже чем С, и BASIC был скорее всего для начинающих "хакеров" чем для прифессионалов. Времена конечно меняются, возможно щас на БАСИКЕ писать серьёзный софт, и чтобы не было "дифицита" по поводу каких либо возможностей?

Честно говоря, у меня не позволяет совесть назвать басик языком программирования. Компилятор для контроллера с басика - это вершина маразма обкуренных программистов! Объясните мне, зачем это надо? Что, он принципиально чем-то проще? На мой взгляд нет, более того, на нем вы не сможите сделать именно того, чего вы хотите. На Си можно сделать практически все!

Что касается темы, то скажите, а не проще ли написать собственный программатор, обладающий именно теми функциями, которые вам нужны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 08:02 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
2Aesthete Animus
если вы батенька заполните свой город, непременно отвечу:
-зачем это надо?
-Что, он принципиально чем-то проще?
-не проще ли написать собственный программатор, обладающий именно теми функциями, которые вам нужны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 15:51 
Не в сети

Зарегистрирован: 22 мар 2008, 21:01
Сообщения: 23
Откуда: Белгород
Skype: dackinevitch_yan
прог. языки: C/C++
Заполнил - отвечайте ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 17:02 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
И так,
Цитата:
зачем это надо?

1.1 Затем что писать на нем намного быстрей чем на Сях. Готов помериться пиписьками в скорости написания кода моргания светодиодом.
1.2 Скорость работы, длина кода при моргании светодиодом такая же как и на асме.
Цитата:
Теперь, он принципиально чем-то проще?

Это для начинающих и тем более чистых электронщиков просто подарок, а не язык программирования. Скорость обучения около 5 минут.
Цитата:
не проще ли написать собственный программатор, обладающий именно теми функциями, которые вам нужны?

1. Самый дружественный интерфейс программатора (не путаем с компилятором бейсика) STK200(300) как раз и находится в васике, больше и желать нечего. Я ваще не понимаю, о каких проблемах с фусибитами народ парится...
2. Предлагаю написать хотя бы такой же для STK500, готов за это подарить полный комплект МиниБота.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 17:06 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
EdGull писал(а):
Я ваще не понимаю, о каких проблемах с фусибитами народ парится...

+1
после CVAVR с галочками и даташитом в зубах был приятно удивлен кристальной прозрачностью установок фьюзов для кварца и остальных

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 19:22 
Не в сети

Зарегистрирован: 22 мар 2008, 21:01
Сообщения: 23
Откуда: Белгород
Skype: dackinevitch_yan
прог. языки: C/C++
EdGull писал(а):
И так,
Цитата:
зачем это надо?

1.1 Затем что писать на нем намного быстрей чем на Сях. Готов помериться пиписьками в скорости написания кода моргания светодиодом.

Намного быстрее? Очень спорное суждение... Вот моя "пиписька" для моргания светодиодом:
Функциональность: дергание ногой PB0 с частотой 1Гц
Контроллер: ATmega8
Частота тактирования: 4МГц (внутрення RC-цепочка)
Компилятор: AVR GCC 20080402
Ключ компиляции:
Код:
avr-gcc -g -Os -ffunction-sections -fdata-sections -mmcu=atmega8 -c main.c
avr-gcc -g -Wl,--gc-sections -mmcu=atmega8 -o main.elf main.o

Собственно код (файл main.c):
Код:
//---------------------------------------------------------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
//---------------------------------------------------------------------------

uint8_t t = 0;
SIGNAL(SIG_OUTPUT_COMPARE2)
{
   if (++t == 125)
   {
      t = 0;
      PORTB ^= (1 << PB0);
   }
}

int main(void)
{   
   DDRB |= (1 << PB0);

   TCCR2 = (1 << WGM21)|(1 << CS22);
   SFIOR |= (1 << PSR2);
   TCNT2 = 0;
   OCR2 = 250 - 1;
   TIMSK = (1 << OCIE2);

   sei();
   
   while (1)
      ;

   return 0;
}

и листинг:
Код:
main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000000b2  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00000001  00800060  00800060  00000126  2**0
                  ALLOC
  2 .debug_aranges 00000028  00000000  00000000  00000126  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_pubnames 00000030  00000000  00000000  0000014e  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   000000a9  00000000  00000000  0000017e  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 00000076  00000000  00000000  00000227  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   000000f7  00000000  00000000  0000029d  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  00000030  00000000  00000000  00000394  2**2
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    0000007e  00000000  00000000  000003c4  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_ranges 00000020  00000000  00000000  00000442  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:   12 c0          rjmp   .+36        ; 0x26 <__ctors_end>
   2:   2c c0          rjmp   .+88        ; 0x5c <__bad_interrupt>
   4:   2b c0          rjmp   .+86        ; 0x5c <__bad_interrupt>
   6:   2b c0          rjmp   .+86        ; 0x5e <__vector_3>
   8:   29 c0          rjmp   .+82        ; 0x5c <__bad_interrupt>
   a:   28 c0          rjmp   .+80        ; 0x5c <__bad_interrupt>
   c:   27 c0          rjmp   .+78        ; 0x5c <__bad_interrupt>
   e:   26 c0          rjmp   .+76        ; 0x5c <__bad_interrupt>
  10:   25 c0          rjmp   .+74        ; 0x5c <__bad_interrupt>
  12:   24 c0          rjmp   .+72        ; 0x5c <__bad_interrupt>
  14:   23 c0          rjmp   .+70        ; 0x5c <__bad_interrupt>
  16:   22 c0          rjmp   .+68        ; 0x5c <__bad_interrupt>
  18:   21 c0          rjmp   .+66        ; 0x5c <__bad_interrupt>
  1a:   20 c0          rjmp   .+64        ; 0x5c <__bad_interrupt>
  1c:   1f c0          rjmp   .+62        ; 0x5c <__bad_interrupt>
  1e:   1e c0          rjmp   .+60        ; 0x5c <__bad_interrupt>
  20:   1d c0          rjmp   .+58        ; 0x5c <__bad_interrupt>
  22:   1c c0          rjmp   .+56        ; 0x5c <__bad_interrupt>
  24:   1b c0          rjmp   .+54        ; 0x5c <__bad_interrupt>

00000026 <__ctors_end>:
  26:   11 24          eor   r1, r1
  28:   1f be          out   0x3f, r1   ; 63
  2a:   cf e5          ldi   r28, 0x5F   ; 95
  2c:   d4 e0          ldi   r29, 0x04   ; 4
  2e:   de bf          out   0x3e, r29   ; 62
  30:   cd bf          out   0x3d, r28   ; 61

00000032 <__do_copy_data>:
  32:   10 e0          ldi   r17, 0x00   ; 0
  34:   a0 e6          ldi   r26, 0x60   ; 96
  36:   b0 e0          ldi   r27, 0x00   ; 0
  38:   e2 eb          ldi   r30, 0xB2   ; 178
  3a:   f0 e0          ldi   r31, 0x00   ; 0
  3c:   02 c0          rjmp   .+4         ; 0x42 <.do_copy_data_start>

0000003e <.do_copy_data_loop>:
  3e:   05 90          lpm   r0, Z+
  40:   0d 92          st   X+, r0

00000042 <.do_copy_data_start>:
  42:   a0 36          cpi   r26, 0x60   ; 96
  44:   b1 07          cpc   r27, r17
  46:   d9 f7          brne   .-10        ; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:   10 e0          ldi   r17, 0x00   ; 0
  4a:   a0 e6          ldi   r26, 0x60   ; 96
  4c:   b0 e0          ldi   r27, 0x00   ; 0
  4e:   01 c0          rjmp   .+2         ; 0x52 <.do_clear_bss_start>

00000050 <.do_clear_bss_loop>:
  50:   1d 92          st   X+, r1

00000052 <.do_clear_bss_start>:
  52:   a1 36          cpi   r26, 0x61   ; 97
  54:   b1 07          cpc   r27, r17
  56:   e1 f7          brne   .-8         ; 0x50 <.do_clear_bss_loop>
  58:   1d d0          rcall   .+58        ; 0x94 <main>
  5a:   29 c0          rjmp   .+82        ; 0xae <_exit>

0000005c <__bad_interrupt>:
  5c:   d1 cf          rjmp   .-94        ; 0x0 <__vectors>

0000005e <__vector_3>:
#include <avr/interrupt.h>
//---------------------------------------------------------------------------

uint8_t t = 0;
SIGNAL(SIG_OUTPUT_COMPARE2)
{
  5e:   1f 92          push   r1
  60:   0f 92          push   r0
  62:   0f b6          in   r0, 0x3f   ; 63
  64:   0f 92          push   r0
  66:   11 24          eor   r1, r1
  68:   8f 93          push   r24
  6a:   9f 93          push   r25
   if (++t == 125)
  6c:   80 91 60 00    lds   r24, 0x0060
  70:   8f 5f          subi   r24, 0xFF   ; 255
  72:   80 93 60 00    sts   0x0060, r24
  76:   8d 37          cpi   r24, 0x7D   ; 125
  78:   31 f4          brne   .+12        ; 0x86 <__vector_3+0x28>
   {
      t = 0;
  7a:   10 92 60 00    sts   0x0060, r1
      PORTB ^= (1 << PB0);
  7e:   88 b3          in   r24, 0x18   ; 24
  80:   91 e0          ldi   r25, 0x01   ; 1
  82:   89 27          eor   r24, r25
  84:   88 bb          out   0x18, r24   ; 24
   }
}
  86:   9f 91          pop   r25
  88:   8f 91          pop   r24
  8a:   0f 90          pop   r0
  8c:   0f be          out   0x3f, r0   ; 63
  8e:   0f 90          pop   r0
  90:   1f 90          pop   r1
  92:   18 95          reti

00000094 <main>:

int main(void)
{   
  94:   b8 9a          sbi   0x17, 0   ; 23
   DDRB |= (1 << PB0);

   TCCR2 = (1 << WGM21)|(1 << CS22);
  96:   8c e0          ldi   r24, 0x0C   ; 12
  98:   85 bd          out   0x25, r24   ; 37
   SFIOR |= (1 << PSR2);
  9a:   80 b7          in   r24, 0x30   ; 48
  9c:   82 60          ori   r24, 0x02   ; 2
  9e:   80 bf          out   0x30, r24   ; 48
   TCNT2 = 0;
  a0:   14 bc          out   0x24, r1   ; 36
   OCR2 = 250 - 1;
  a2:   89 ef          ldi   r24, 0xF9   ; 249
  a4:   83 bd          out   0x23, r24   ; 35
   TIMSK = (1 << OCIE2);
  a6:   80 e8          ldi   r24, 0x80   ; 128
  a8:   89 bf          out   0x39, r24   ; 57

   sei();
  aa:   78 94          sei
  ac:   ff cf          rjmp   .-2         ; 0xac <main+0x18>

000000ae <_exit>:
  ae:   f8 94          cli

000000b0 <__stop_program>:
  b0:   ff cf          rjmp   .-2         ; 0xb0 <__stop_program>

EdGull писал(а):
1.2 Скорость работы, длина кода при моргании светодиодом такая же как и на асме.

Не поверю пока не увижу асмовые листинги! В любом случае это верно, для тривиальных задач дергания ножками. Но попробуйте на басике написать реализацию файловой системы или FFT, или любой другой нестандартный, непредусмотренный разработчиками басика алгоритм. Элементарно, сделайте хороший ПИД регулятор на басике.
EdGull писал(а):
Цитата:
Теперь, он принципиально чем-то проще?

Это для начинающих и тем более чистых электронщиков просто подарок, а не язык программирования. Скорость обучения около 5 минут.

Ну неужели человек, разобравшийся в электронике не в состоянии понять Си или хотябы асм?

EdGull писал(а):
Цитата:
не проще ли написать собственный программатор, обладающий именно теми функциями, которые вам нужны?

1. Самый дружественный интерфейс программатора (не путаем с компилятором бейсика) STK200(300) как раз и находится в васике, больше и желать нечего. Я ваще не понимаю, о каких проблемах с фусибитами народ парится...

Так я о том и говорю, не проще ли написать собсвтенный программатор с дружественным для себя интерфейсом и предсказуемым поведением?
EdGull писал(а):
2. Предлагаю написать хотя бы такой же для STK500, готов за это подарить полный комплект МиниБота.

Не совсем понял, что Вы имеете ввиду: stk200/500 и прочие стуки ни разу в жизне не использовал. Поясните ТЗ - напишу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 19:35 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
тогда и моя пиписька
Код:
$regfile = "m8def.dat"
$crystal = 4000000

Config Pinb.0 = Output

Do
   Portb.0 = 0
   Waitms 500
   Portb.0 = 1
   Waitms 500
Loop


ну и кого быстрей проще?

Добавлено спустя 1 минуту 8 секунд:
ах да!... совсем забыл...
никто не мешает в васике делать асм-вставки... :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 19:36 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
а зачем SIGNALL()?
Код:
/** \def SIGNAL(vector)
    \ingroup avr_interrupts

    \code#include <avr/interrupt.h>\endcode

    Introduces an interrupt handler function that runs with global interrupts
    initially disabled.

    This is the same as the ISR macro.
    \deprecated Do not use anymore in new code.
*/


[hr][/hr]
твоя пиписька твой асм-код больше - т.к. не использует прерывания а задержку делает нопом

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 19:39 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Цитата:
Так я о том и говорю, не проще ли написать собсвтенный программатор с дружественным для себя интерфейсом и предсказуемым поведением?

Вы батенька готовы взяться за такую разработку или просто так потрещать языком? :wink:

Добавлено спустя 1 минуту 23 секунды:
Цитата:
твоя пиписька больше - т.к. не использует прерываниях а задержку делает нопом

блин! ну напиши на прерывания! кто мешает???
смысл-то не поменяется!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 19:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
EdGull писал(а):
блин! ну напиши на прерывания! кто мешает???
смысл-то не поменяется!

я хотел написаь "так то!" в конце, но потом передумал.
т.к. анонимусов у нас нет и Капитану Очевидность вроде как здесь делать нечего :)

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 20:16 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
если деействительно пиписьками меряться то победил тот у кого длиннее.
но чтоб дергать однгой ножкой столько кода написать в АСМ , да ну его на#. я еще понимаю отдельные вставки делать но чтоб всю программу! а если торкнет МК поменять? еще немножко гимороя.
вообще я б мерился не длинной кода а своими достижениями, а на каком языке они сделаны это вторично. так что фотку!


Последний раз редактировалось rig 15 апр 2008, 20:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програматоры
СообщениеДобавлено: 15 апр 2008, 20:23 
Не в сети

Зарегистрирован: 22 мар 2008, 21:01
Сообщения: 23
Откуда: Белгород
Skype: dackinevitch_yan
прог. языки: C/C++
EdGull писал(а):
Добавлено спустя 1 минуту 23 секунды:
Цитата:
твоя пиписька больше - т.к. не использует прерываниях а задержку делает нопом

блин! ну напиши на прерывания! кто мешает???
смысл-то не поменяется!

Э-нет, батенька, не надо путать жопу с пальчиком (С). Если мы делаем дрыгания на таймере, то разгружаем контроллер для других задач, а это уже принципиально. Я рассчитывал, что Вы напишите именно аналог моего кода на Си. То что Вы написали, имеет такой аналог в Си (опять-таки AVR GCC)
Код:
//---------------------------------------------------------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
//---------------------------------------------------------------------------
int main(void)
{   
   DDRB |= (1 << PB0);

   register uint8_t cnt;
   
   while (1)
   {
      for (cnt = 10; cnt; cnt--) _delay_loop_2(50000);
      PORTB &= ~(1 << PB0);

      for (cnt = 10; cnt; cnt--) _delay_loop_2(50000);
      PORTB |= (1 << PB0);
   }      

   return 0;
}

Да код несколько длиннее. Но вот вопрос, Вы знаете, как релизуется функция Waitms в басике? Вы знаете, как компилятор рассчитывает задержку по известной частоте кварца? Вы знаете, какая в итоге получается при этом погрешность?
EdGull писал(а):
Цитата:
Так я о том и говорю, не проще ли написать собсвтенный программатор с дружественным для себя интерфейсом и предсказуемым поведением?

Вы батенька готовы взяться за такую разработку или просто так потрещать языком? :wink:

Сделать программку, которая дергает ногами ком порта и прошивает контроллер - довольно простая задача и это мне уже приходилось делать и для контроллера и для PC. Другое дело, какие требования Вы предъявляете к GUI? Если вы поясните, что вам надо - могу заняться.


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

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO