Страница 4 из 5

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 10:07:48
koms48
Ну пёс с ними (с делаями (ежель фловкоде копнуть, совсем мало не покажется)).

Config MCLREOFF
Device = 12F675
Declare Xtal = 4
TRISIO = 0

m1:
PORTB.0 = 1
;DelayMS 100
PORTB.0 = 0
;DelayMS 100
GoTo m1

Что будет с Сями?

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 11:22:22
vem566
Как то давно, когда 64К было охрененной величины ОЗУ, нужна была программа для проверки этого самого ОЗУ. Так как при выполнении
эта программа находилась в этом самом ОЗУ, единственное условие - минимальный размер. Писалась она двумя разными людьми
даже не на асме, а прямым машинным кодом. Разница в размерах была в два раза. Не помню точно цифры, но в районе 200 и 400 байт.
Так что сравнивать любые одинаковые функции разных языков совершенно бессмысленное занятие.

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 11:36:58
КРАМ
[uquote="ARV",url="/forum/viewtopic.php?p=3510978#p3510978"]а если функция задержки - часть языка?[/uquote]
Библиотечная функция - часть КОМПИЛЯТОРА, а не языка.
Если говорить о функции задержки, как о критерии сравнения компиляторов, то это равносильно сравнению двух спортсменов-тяжелоатлетов по длине ногтей.

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 11:41:34
oleg110592
[uquote="koms48",url="/forum/viewtopic.php?p=3510989#p3510989"]Что будет с Сями?[/uquote]
xc8 1.45

Код: Выделить всё

#include <pic.h>
#include <htc.h>	// Required to interface with delay routines

#ifndef _XTAL_FREQ
// Unless already defined assume 4MHz system frequency
// This definition is required to calibrate __delay_us() and __delay_ms()
#define _XTAL_FREQ 4000000
#endif

#pragma config MCLRE=OFF
#pragma config CP=ON
#pragma config CPD=OFF
#pragma config BOREN=ON
#pragma config WDTE=OFF
#pragma config PWRTE=ON
#pragma config FOSC=INTRCIO

void main()
{
    TRISC1 = 0;
    for (;;)
    {
        RC1 = 1;
        __delay_ms(100);
        RC1 = 0;
        __delay_ms(100);
    }
}
Memory Summary:
Program space used 27 of 3FFh words ( 2.6%)
Data space used 4 of 3Eh bytes ( 6.5%)

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 13:42:01
dosikus
koms48, где листинг? Чем вы собрались меряться?

Длиной строк исходников?
Пожалуйста:

Код: Выделить всё

#include <xc.h>
void main (void)
 {
   blink();
}

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 14:39:12
ARV
dosikus писал(а):

Код: Выделить всё

#include <xc.h>
void main (void)
 {
   blink();
}
:))) :))) :))) чего тогда не так

Код: Выделить всё

#include "a.h"
:))) :))) :)))

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 14:52:30
dosikus
ARV, а тебе что не понравилось?
xc.h ? Это стандартный хэдер xc8 ...

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

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 15:23:24
Мурик
oleg110592 писал(а):Program space used 27 of 3FFh words ( 2.6%)
Т. е. 54 байта.

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 15:47:45
oleg110592
pic16
1 слово = 14 бит = 14/8 байтов = 1,75 байта :))

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 15:48:35
КРАМ
[uquote="Мурик",url="/forum/viewtopic.php?p=3511190#p3511190"]54 байта.[/uquote]
47,25 байт
:tea: :)))

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 16:04:18
Мурик
oleg110592 писал(а):1 слово = 14 бит = 14/8 байтов = 1,75 байта
И на флешке они так хорошо упакованы? :))) :)))

Re: Great Cow BASIC

Добавлено: Пт ноя 23, 2018 16:38:58
oleg110592
ага, xc8 с конца флэш заполняет:
Изображение

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 12:10:41
SIM31
А отличие от Bascom avr в чем? В Bascom делал программы даже для AtTiny13 хватило памяти. Тем более сообществом поддерживается.
Вроде гланул более кросплатформенная, пики еще поддерживает. По аналогии с Микробэйсиком.

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 12:22:11
КРАМ
[uquote="koms48",url="/forum/viewtopic.php?p=3511651#p3511651"]сам бы проверил.[/uquote]
А что тут проверять? Как написана на АСМе функция задержки для библиотеки языка?
Сколько одно и тоже говорить? Проверять компиляторы на размер кода функции задержки - это тупость невероятная.
Сравнение нужно вести на конкретных тематических задачах.
Например, сортировка пузырьком. Или извлечение корня без обращения к библиотеке.
Или перемножение матриц. Или преобразование системы счисления (BIN2BCD).
То есть на НЕБИБЛИОТЕЧНЫХ задачах.

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 13:41:30
koms48
Во, мля!
koms48 писал(а):
сам бы проверил.

Удалять посты - не для неправильно ориентированных мужей. KPAM, Вас это не касается, есть тут одно мудило, досикусом прикинулся.

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 13:52:13
dosikus
[uquote="koms48",url="/forum/viewtopic.php?p=3511905#p3511905"]Во, мля!
koms48 писал(а):
сам бы проверил.

Удалять посты - не для неправильно ориентированных мужей. KPAM, Вас это не касается, есть тут одно мудило, досикусом прикинулся.[/uquote]


Это что? Когда нет аргументов льется словесный понос?
Не проще ли признать свое поражение, барсиковод, полное и безоговорочное...

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 15:30:12
Мурик
Этот код скомпилировался в прошивку размером 51 байт.
Этот в прошивку размером 54 байта.

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 15:47:27
dosikus
Речь была разве о размере кода ?

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 15:50:42
Novice user
Да что вы за байтами гонитесь,не хватает памяти-срезаем лишнее либо берем мк с большей памяти...
Начал ковыряться (плата с атмега328+дисплей SSD1306,демо пример работает),как включить подтяжку портов (на PORTB у меня кнопки)?
Пока сделал так
PORTB = 0xFF
надеюсь правильно...

Re: Great Cow BASIC

Добавлено: Сб ноя 24, 2018 19:24:36
oleg110592
[uquote="Мурик",url="/forum/viewtopic.php?p=3512026#p3512026"]Этот код размером[/uquote]
xc8 __delay_ms инлайнит (в листинге два раза, без вызова) - м.б. потому что выбран микроконтроллер с малым стеком. Когдато делал свой корявый делэй:

Код: Выделить всё

#pragma config = 0x31C4

void Delay_ms(char cnt)
{
    char i, delayus_variable;
    do
    {
        i = 5;
        do
        {
            delayus_variable = 62;
label1:
            #asm
            decfsz delayus_variable
            #endasm
            goto label1;
        }
        while (--i);
    }
    while (--cnt);
}

void main()
{
    TRISC.5 = 0;
    for (;;)
    {
        PORTC.5 = 1;
        Delay_ms(100);
        PORTC.5 = 0;
        Delay_ms(100);
    }
}
RAM usage: 3 bytes (3 local), 61 bytes free
Total of 23 code words (2 %)