Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: Great Cow BASIC

Пт ноя 23, 2018 10:07:48

Ну пёс с ними (с делаями (ежель фловкоде копнуть, совсем мало не покажется)).

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

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

Re: Great Cow BASIC

Пт ноя 23, 2018 11:36:58

а если функция задержки - часть языка?

Библиотечная функция - часть КОМПИЛЯТОРА, а не языка.
Если говорить о функции задержки, как о критерии сравнения компиляторов, то это равносильно сравнению двух спортсменов-тяжелоатлетов по длине ногтей.

Re: Great Cow BASIC

Пт ноя 23, 2018 11:41:34

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

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

koms48, где листинг? Чем вы собрались меряться?

Длиной строк исходников?
Пожалуйста:
Код:
#include <xc.h>
void main (void)
 {
   blink();
}

Re: Great Cow BASIC

Пт ноя 23, 2018 14:39:12

dosikus писал(а):
Код:
#include <xc.h>
void main (void)
 {
   blink();
}
:))) :))) :))) чего тогда не так
Код:
#include "a.h"
:))) :))) :)))

Re: Great Cow BASIC

Пт ноя 23, 2018 14:52:30

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

pic16
1 слово = 14 бит = 14/8 байтов = 1,75 байта :))

Re: Great Cow BASIC

Пт ноя 23, 2018 15:48:35

54 байта.

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

ага, xc8 с конца флэш заполняет:
Изображение

Re: Great Cow BASIC

Сб ноя 24, 2018 12:10:41

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

Re: Great Cow BASIC

Сб ноя 24, 2018 12:22:11

сам бы проверил.

А что тут проверять? Как написана на АСМе функция задержки для библиотеки языка?
Сколько одно и тоже говорить? Проверять компиляторы на размер кода функции задержки - это тупость невероятная.
Сравнение нужно вести на конкретных тематических задачах.
Например, сортировка пузырьком. Или извлечение корня без обращения к библиотеке.
Или перемножение матриц. Или преобразование системы счисления (BIN2BCD).
То есть на НЕБИБЛИОТЕЧНЫХ задачах.

Re: Great Cow BASIC

Сб ноя 24, 2018 13:41:30

Во, мля!
koms48 писал(а):
сам бы проверил.

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

Re: Great Cow BASIC

Сб ноя 24, 2018 13:52:13

Во, мля!
koms48 писал(а):
сам бы проверил.

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



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

Re: Great Cow BASIC

Сб ноя 24, 2018 15:30:12

Этот код скомпилировался в прошивку размером 51 байт.
Этот в прошивку размером 54 байта.

Re: Great Cow BASIC

Сб ноя 24, 2018 15:47:27

Речь была разве о размере кода ?

Re: Great Cow BASIC

Сб ноя 24, 2018 15:50:42

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

Re: Great Cow BASIC

Сб ноя 24, 2018 19:24:36

Этот код размером

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 %)
Ответить