roboforum.ru

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

Посоветуйте решение новичку

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 18:32

А я и пик знаню асм, вот месяц назад закончил проект на асм в 6000 строк.
Используемые контроллеры в проекте: pic18f2620(код на asm), pic16f886(код на asm), pic12f1840(код на си), arduino mini(код на си)
Твой позор неотвратим :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 18:46

Код: Выделить всёРазвернуть
00004         list            p=12F1822
                      00005         include         "p12F1822.inc"
                      00001         LIST
                      00002
                      00003 ;==========================================================================
                      00004 ;  MPASM PIC12F1822 processor include
                      00005 ;
                      00006 ;  (c) Copyright 1999-2013 Microchip Technology, All rights reserved
                      00007 ;==========================================================================
                      00008
                      01035         LIST
8007   0904           00006         __CONFIG        _CONFIG1, 0x3FFF & _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_ON &
                            _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
8008   18FF           00007         __CONFIG _CONFIG2, 0x3FFF & _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_HI & _LVP_OFF
                      00008 ;------------------------------------------
                      00009         cblock  0x20
  00000020            00010         TEMP,FLAG
  00000022            00011         COUNT,COUNT1,COUNT2,BITS
                      00012         endc

;тут был листинг, но вам он нахрен не нужен

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXX--------- ---------------- ----------------
8000 : -------XX------- ---------------- ---------------- ----------------

All other memory blocks unused.
Program Memory Words Used:   150
Program Memory Words Free:  1898

Errors   :     0
Warnings :     0 reported,     0 suppressed
Messages :    20 reported,     0 suppressed


Это больше, чем та самая DELAY, но меньше ОС ардуины.
На выходе - неспешное вращение шагового моторчика, управление неонкой (плавное и рандомное, в зависимости от режима работы) и ШИМ для накачки высоковольтного преобразователя.

Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 18:51

ALS писал(а):Это больше, чем та самая DELAY, но меньше ОС ардуины.

Не, погоди, твой бредовый код для барабанщиков в 100 байт неинтересен. Ты сказал, что на ардуино код разбухает, я тебе дал распечатку сишных команд, которые занимают ровно одну ассемблерную команду. Есть только накладные расходы в 444 байта, которые в большом проекте никого не волнуют...
Покажи хоть одну свою нормальную программу, ну в 10000 ассемблерных строк :wink:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 18:57

Я продаю свои поделки. И не распространяю исходники к ним.
Поэтому либо ты веришь моему честному слову, либо проходишь мимо (ну, примерно, как на аве - быстро и не оглядываясь).

Кусок из *.lst для стабилизатора.
Прикинь, сколько всего полезного влезло бы в оставшиеся свободными 7 кБ.

Код: Выделить всёРазвернуть
MPASM  5.05                          V1_5.ASM   3-5-2008  16:25:23         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ; add gisteresis +/-2V
                      00002 ; correct V_TABLE
                      00003 ; change HC_OFF time
                      00004 ; change CHKLINE pin
                      00005 ; add 4 LEDs
                      00006 ; add VA-meter
                      00007 ; add temperature control
                      00008 ; ignore MINIMAL VOLTAGE error
                      00009 ; add RMS-calc
                      00010   LIST P=16F877, R=DEC
                      00011   INCLUDE "P16F877.inc"
                      00001         LIST
                      00002 ; P16F877.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00373         LIST
2007   0D42           00012  __CONFIG _CP_ALL & _WDT_OFF & _HS_OSC & _PWRTE_ON & _LVP_OFF & _WRT_ENABLE_OFF & _BODEN_ON & _DEBUG_OFF
                      00013 ;************************************************************************

;


MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
01C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0240 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0280 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
02C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0300 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0340 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0380 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
03C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0400 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXX-------- ----------------
2000 : -------X-------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:  1061
Program Memory Words Free:  7131


Errors   :     0
Warnings :     0 reported,     0 suppressed
Messages :    13 reported,     0 suppressed
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 19:09

ALS писал(а):Прикинь, сколько всего полезного влезло бы в оставшиеся свободными 7 кБ.

Да ты опозорился на всю страну :)
Ты не можешь рассуждать на тему быдлокодности ардуины, т.к. знаешь только один язык программирования, причем самый простой. :)
На тебе переписанный код мигалки на чистый си, но загруженный в ардуину, 182 bytes:

Код: Выделить всёРазвернуть
#include <avr/io.h>

void Delay(void);

int main(void)
{
   // initialize digital pin 13 as an output.
   DDRB |= (1<<5);
   while (1)
   {
      PORTB |= (1<<5);
      Delay();
      PORTB &=~(1<<5);
      Delay();
   }
}

void Delay(void)
{
  volatile unsigned char a;
  for (a = 255; a>0; a--){}
}



Size after:
AVR Memory Usage
----------------
Device: atmega168p

Program: 182 bytes (1.1% Full)
(.text + .data + .bootloader)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 19:19

Сцуко, 182 байта. Мигалка, блеать... Пойду нажрусь...

Управляемый по RS232 4-канальный ШИМ, 148 байт.
На выходе - управление приборкой на стрелочных индикаторах для отображения параметров ПК из AIDA64.
Тут использовалось : http://aiologs.net/projects/streamliner

Код: Выделить всёРазвернуть
MPASM  5.51                      STEP1822.ASM   7-18-2016  5:04:19         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;115200 at 8MHz
                      00002
                      00003         list    p=12F1822      ; list directive to define processor
                      00004         include "p12F1822.inc" ; processor specific variable definitions
                      00001         LIST
                      00002
                      00003 ;==========================================================================
                      00004 ;  MPASM PIC12F1822 processor include
                      00005 ;
                      00006 ;  (c) Copyright 1999-2013 Microchip Technology, All rights reserved
                      00007 ;==========================================================================
                      00008
                      01035         LIST
8007   0904           00005         __CONFIG _CONFIG1, 0x3FFF & _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_ON & _CPD_OF
                            F & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
8008   18FF           00006         __CONFIG _CONFIG2, 0x3FFF & _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_HI & _LVP_OFF



MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXX----------- ---------------- ----------------
8000 : -------XX------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:   148
Program Memory Words Free:  1900


Errors   :     0
Warnings :     0 reported,     0 suppressed
Messages :    28 reported,     0 suppressed
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение Scorpio » 24 дек 2016, 19:31

arobot писал(а):...ребята у вас классный форум...
:)
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 19:45

Ну ты теперь согласен, что сишная команда, которая делает что-то, занимает столько же места сколько и асм? :wink:

си: PORTB |= (1<<5); Компилируется в:
асм: sbi 0x5,5

Твои асм листинги неинтересны, и чего они все такие короткие? На мой асм листинг :)
Понты On:
Код: Выделить всёРазвернуть
                      00003 ;==========================================================================
                      00004 ; Build date : Feb 01 2016
                      00005 ;  MPASM PIC18F2620 processor include
                      00006 ;
                      00007 ;  (c) Copyright 1999-2016 Microchip Technology, All rights reserved
                      00008 ;==========================================================================

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)


0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
01C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0240 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0280 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
02C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0300 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0340 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0380 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
03C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0400 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0440 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0480 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
04C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0500 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0540 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0580 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
05C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0600 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0640 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0680 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
06C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0700 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0740 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0780 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
07C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0800 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0840 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0880 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
08C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0900 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0940 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0980 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
09C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0A00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0A40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0A80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0AC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0B00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0B40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0B80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0BC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0C00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0C40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0C80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0CC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0D00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0D40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0D80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0DC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0E00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0E40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0E80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0EC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0F00 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0F40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0F80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0FC0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
10C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
11C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1240 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1280 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
12C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1300 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1340 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1380 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
13C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1400 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1440 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1480 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
14C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1500 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1540 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1580 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
15C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1600 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1640 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1680 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
16C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

1700 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1740 : XXXXXXXXXXXXXXXX XXXXXXXX-------- ---------------- ----------------
0000 : -XXX-XX-XXXXXX-- ---------------- ---------------- ----------------
0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ---------------- ----------------

All other memory blocks unused.

Program Memory Bytes Used:  6147
Program Memory Bytes Free: 59389


Понты Off :)

Добавлено спустя 8 минут 31 секунду:
ALS писал(а):Сцуко, 182 байта. Мигалка, блеать... Пойду нажрусь...

Ты опять них не понял. Код мигалки занимает ровно столько места сколько и на асме, остальное - сишная обертка. Без особых усилий, обертка в 444 байта превратилась в 120 байт. Никаких агрессивных оптимизаторов не включалось, ибо это тупость.
Сишный код будет больше на 120 байт. Только ты не сможешь написать на асме проект в 20000 строк, а на таких размерах, думать о 120 байтах - бред. Поэтому у тебя остается только один понт - показать код в 100 байт. Ну в 20000 строк кода ты никогда не писал :wink:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 19:50

По большому счету, дело не в байтах, быстродействии, перепрошивках или оптимизациях, а в том, ЧТО же именно должно получиться на выходе.

Когда человек, собирающий компьютер, что был выше, ждет 3 (три, Карл!) месяца, чтобы ардуино-прошаренный специалист победил неправильную разводку своего поделия, а потом еще сказал, что у текущей ардуины кончилась память из-за многочисленных костылей - для вас это нормально. Ведь главное же тут - дешманская платка и "простой код" (с)

Я не стесняюсь показывать уже готовые изделия, где применяется моя (мелкая, ага) электроника, потому что на выходе это всегда вещь и интересная, и полезная. А на выходе у "просто"-кодеров - сопли и мотки из соплей.
И это оттого, что они привыкли делать "просто", а потому - хреново (сорри, конечно).
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 20:10

ALS писал(а):А на выходе у "просто"-кодеров - сопли и мотки из соплей.


Я не понимаю, почему ты всегда Д`Артаньян, а все вокруг пед....ты.
С кодом на ардуино ты слился, ибо этого не знал. Ну хорошо, больше нигде не неси эту чушь. Раздутость кода на ардуино зависит только от профессионализма программиста.

Изделия твои красивые, но кроме понтов надо еще помогать людям, а у тебя всегда - не дам, не покажу, сами додумайтесь, у меня все продается, вы все тут лохи и не умеете писать на асме, а мне си не нужен, ибо и так хорошо продаются бинарные барабанщики :)

Добавлено спустя 11 минут 23 секунды:
Да, на тебе маленькую какашку, профи пиков :)

ALS писал(а):Управляемый по RS232 4-канальный ШИМ, 148 байт.

Асм команда p12F1822 занимает 14 бит. Такшта твоя "Program Memory Words Used: 148" равна 296 байтам. А авр код, который я привел, в твоей интерпретации занимает 91 байт. Вот теперь иди нажрись. :lol:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 20:25

Т.е. когда просто говоришь : пользуйтесь заводскими решениями и максимально документированными примерами - это хреново.
А когда вместо этого новичку сразу суют в нос дуину и начинают мигать светодиодом вместо того, чтобы показать, как крутить двигателем - это зашибись.

Добавлено спустя 12 минут 28 секунд:
Что именно тебе тут выложить ?
Код для управления ШИМ-ом в пике ? Как парсить команды MIDI ? Как читать флеш-память ?
Нахрен тебе-то оно надо ? Есть огромное ардуино-сообщество, где все это обсосано 100500 раз.
И там главное, что "все просто". А быстрый код и безглючная работа там не в почОте. Ибо кайф от "залил новую прошивку, отвалился подогрев стола" - не сравнится ни с чем.

Про 14 бит - это уже к терапевту.
На пальцах попытаюсь :

Вот смотри, у какого-то МК есть 8192 ячеек памяти. Битность их неважна, поскольку в одну ячейку можно записать только одну команду. Не полторы.
И часть из них либо можно занять миганием светодиода, либо - выполнением чего-то более осознанного.
После прошивки останется, например, 8000 ячеек памяти. И их снова можно чем-то занять :)
Последний раз редактировалось ALS 24 дек 2016, 21:08, всего редактировалось 1 раз.
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение Dmitry__ » 24 дек 2016, 20:34

Как я тебя понимаю. Сидишь, корячишься, разводишь платы, паяешь, а ардуинщики - бац, купили качественную плату за 70руб. со всеми кварцами, контроллерами, диодами, резисторами, конденсаторами, залили прошивку и радуются :)

Изображение

Добавлено спустя 5 минут 25 секунд:
ALS писал(а):Про 14 бит - это уже к терапевту.

Не к терапевту, а к твоим знаниям пиков :wink:
Тебе листинг выдал не в байтах, а в Words. У Авр команды тоже по 2 байта, но я тебе дал честный обьем, в байтах. Если у тебя "Words Used: 148" равна 148 байтам, то мои 182 байт, занимают твои 91 words-байт :P
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 20:48

А если я выкину из кода подсчет CRC, отсылку ответа на ПК и управление одним из четырех каналов и код получится на треть меньше - оно совсем плохим станет ? Хуже, чем просто мигание светодиодом ?

И мне очень часто не нужны заводские платки, какие бы они дешевые не были, поскольку на выходе должно получится максимально компактно и с учетом особенностей корпуса.
Ну где, например, я найду такую плату ? В каких из ардуино распаяны 15 высоковольтных ключей, DCDC на 170 вольт и зарядка для лития ?

DSC09224sm.jpg


Но если результат не важен, а на выходе и такое пойдет - тогда да, ардуино рулит.
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Посоветуйте решение новичку

Сообщение sned » 24 дек 2016, 21:27

Дмитрию браво!
А товарищ всё о своем.Фотка http://www.electricstuff.co.uk/jtwatch2.jpg походу одного и того же устройства наверное,а если нет то найди пять отличий?
Последний раз редактировалось sned 24 дек 2016, 21:31, всего редактировалось 1 раз.
sned
 
Сообщения: 303
Зарегистрирован: 08 апр 2013, 08:09
Откуда: Екатеринбург
ФИО: Сергей

Re: Посоветуйте решение новичку

Сообщение ALS » 24 дек 2016, 21:31

А ты здесь чем отличился ? Размер кода я от тебя ждал.

Устройств - да, не так много, но повторений здесь вроде не было.
Так что походу ты не попал.
Последний раз редактировалось ALS 24 дек 2016, 21:37, всего редактировалось 1 раз.
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 9