Программирование 32-х разрядных МК

a5021
Offline
Зарегистрирован: 07.07.2013

Да можно было и не проверять. Если я правильно понял вашу мысль, формула 2^n дает ошибку всегда одного знака, и преднамеренное смещение результата (введение небольшой постоянной ошибки LSB/2) позволяет улучшить статистическую картинку примерно в два раза.

man9913
Offline
Зарегистрирован: 19.03.2016

Не хотите проверять - ваше дело, я то результат знаю. Объяснять себе вы можете как вам удобнее/понятнее/приятнее, но факт остается фактом, а именно: для получения наиболее точного результата делить надо все же на 4096(2^N).

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

wdrakula пишет:

Можно имитировать работу SAR ADC

сам себя процитировал

вот код с имитацией SAR, прямо на указанном ресурсе только что писал.

# coding: utf8
from math import *
from random import *

N = 10000

asd1=0
asd2=0
asd3=0
ald1=0
ald2=0
ald3=0

LSB=1.0/4096.0

seed()

for i in range (N):
    r = random ()

    adc = 0
    r1 = r
    for j in range (11):
        if r1 > 0.5:
            adc = adc |1
            r1 = 2.0 * r1 - 1
        else:
            adc = adc & ~1
            r1 = 2.0 * r1
        adc = adc << 1
     
    
    d1 = abs(r - adc / 4096.0)
    d2 = abs(r - adc / 4095.0)
    d3 = abs(r - adc / 4096.0 + LSB / 2)

    ald1 += d1
    ald2 += d2
    ald3 += d3

    asd1 += d1**2
    asd2 += d2**2
    asd3 += d3**2

ald1 /= N
ald2 /= N
ald3 /= N

asd1 = sqrt(asd1) /N
asd2 = sqrt(asd2) /N
asd3 = sqrt(asd3) /N

print ("среднее по    4096 = %.2e \n" % ald1)
print ("среднее по    4095 = %.2e \n" % ald2)
print ("среднее по man9913 = %.2e \n" % ald3)
print ("сред.кв по    4096 = %.2e \n" % asd1)
print ("сред.кв по    4095 = %.2e \n" % asd2)
print ("сред.кв по man9913 = %.2e \n" % asd3)

А вот результат:

среднее по    4096 = 2.43e-04 

среднее по    4095 = 1.63e-04 

среднее по man9913 = 3.65e-04 

сред.кв по    4096 = 2.81e-06 

сред.кв по    4095 = 1.99e-06 

сред.кв по man9913 = 3.92e-06 

=============================

как мы видим по точности - лучший вариант, это формула V=ADC*Vref / 4095.

Это не в радость спорщикам, а просто факт.

Поэтому я и писал "правильно" и "неправильно", а не чья точность выше. "4095" - как-бы "размазывает" погрешность, и на 10 тыс. случайных опытах, результат будет лучше.

=================================

Если кто-то готов дискутировать о том, что модель SAR ADC в моей программе неадекватна, то прошу указать.

===============================

Да! Оставьте вы этот Эксель - ну право смешно моделировать на 2 битах, если можно делать полностью адекватную модель.

 

man9913
Offline
Зарегистрирован: 19.03.2016

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

a5021
Offline
Зарегистрирован: 07.07.2013

Я вот что-то тоже не понял, как вариант man9913 оказался в два раза хуже. У меня он в два раза лучше, несмотря на "смешную" двухбитную модель.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

man9913 пишет:

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

Ищите сами! Я переписал на С, для тех, кому питон не нравится.

Вот:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define abs(x)  (((x)>=0)?(x):(-(x)))

#define N 10000
#define LSB 1.0/4096.0

int main(void) {
	// your code goes here
int adc =0;

double d1,d2,d3;
double asd1 = 0;
double asd2 = 0;
double asd3 = 0;
double ald1 = 0;
double ald2 = 0;
double ald3 = 0;

double r,r1;


int i,j;

for (i = 0; i < N; i++)
   {
    r = (double)random()/RAND_MAX;
    r1 = r;
    adc = 0;	
    
    for (j=0; j < 11; j++)
	{
	if (r1 > 0.5) 
           {
            adc = adc | 1;
	    r1 = 2.0 * r1 -1;
           }
         else
           {
            adc = adc & ~1;
            r1 = 2.0 * r1;
           }
         adc = adc << 1;
	}

    //printf("r = %f, adc= %d Iadc = %d \n",r,adc, (int)(r*4096));

    d1 = abs(r - (double)adc / 4096.0);
    d2 = abs(r - (double)adc / 4095.0);
    d3 = abs(r - (double)adc / 4096.0 + LSB / 2);

    ald1 += d1;
    ald2 += d2;
    ald3 += d3;

    asd1 += d1*d1;
    asd2 += d2*d2;
    asd3 += d3*d3;
    
   }

ald1 /= N;
ald2 /= N;
ald3 /= N;

asd1 = sqrt(asd1) /N;
asd2 = sqrt(asd2) /N;
asd3 = sqrt(asd3) /N;

printf ("среднее по    4096 = %.4e \n",  ald1);
printf ("среднее по    4095 = %.4e \n",  ald2);
printf ("среднее по man9913 = %.4e \n",  ald3);
printf ("сред.кв по    4096 = %.4e \n",  asd1);
printf ("сред.кв по    4095 = %.4e \n",  asd2);
printf ("сред.кв по man9913 = %.4e \n",  asd3);
return 0;
}

Вот ОНЛАЙН ИДЕ, для тех, у кого С только для СТМ или АВР:

===========================

С кодом на С кто-то спорит, программисты?

Упростил донельзя, чтобы читался с ходу и не нуждался  в комментариях.

Вот результат:

среднее по    4096 = 2.4413e-04 
среднее по    4095 = 1.6434e-04 
среднее по man9913 = 3.6620e-04 
сред.кв по    4096 = 2.8230e-06 
сред.кв по    4095 = 2.0114e-06 
сред.кв по man9913 = 3.9268e-06 

 

man9913
Offline
Зарегистрирован: 19.03.2016

Уж не сочтите за оскорбление, но не стану разбираться так как знаю о чем говорю. Я думаю у вас не реализация алгоритма неверна, а сама методика оценки ошибки.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

тут ровно два десятка содержащих смысл строк (не печати и не заголовков). Если я ошибся - велкам!

Я никогда не "кручу жопой", и ошибки признаю - это, надеюсь, любой из моих "противников" подтвердит.

Прокомментировать код? - цикл по i - просто 10000 шагов, цикл по j -  вычисление ADC_SAR кода, делением пополам. Закомментированный printf, показывает адекватность вычислений простому умножению.

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

man9913 пишет:

Уж не сочтите за оскорбление, но не стану разбираться так как знаю о чем говорю. Я думаю у вас не реализация алгоритма неверна, а сама методика оценки ошибки.

Простите, но сочту.

С вероятностью более 99% (это вероятность того, что Вы тоже получили математическое образование в ВУЗе аналогичном МГУ), я гораздо лучше Вас образован. Поэтому, сам факт попыток спора со мной, могу простить, разьве что амбициозным подросткам, типа А5021.

Фраза - "не буду разбираться" - выдает безграмотного неуча.

Есть 20 строк простейшего кода. Результат Вас не устраивает. Предлагайте свой способ или валите нахер.

a5021
Offline
Зарегистрирован: 07.07.2013

Ал-ля-ля. Сами найдите, сами исправьте, а я тут пока буду выдавать фигню, трясти дипломом и всех обсирать.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

Ал-ля-ля. Сами найдите, сами исправьте, а я тут пока буду трясти дипломом и всех обсирать.

Ты пока про образование не ответил, поэтому просто завали хавальник. Твоего пустозвонства уже достаточно.

Ты с чем-то смеешь спорить? Давай или заткнись.

man9913
Offline
Зарегистрирован: 19.03.2016

wdrakula можете думать что хотите, но когда убедитесь в моей правоте буду готов выслушать ваше опровержение моей невежествености. 

Неохота терять время на бессмысленный срач. Адьос амигос.

a5021
Offline
Зарегистрирован: 07.07.2013

Очень странно, что обладатель блестящего образования не увидел в простейшей формуле ее ярко выраженных свойств. Я и считать-то сначала не хотел по той причине, что результат легко угадывается. Ладно, потом проверил расчетами. Все подтвердилось.

wdrakula пишет:
Ты пока про образование не ответил, поэтому просто завали хавальник.

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

А ошибка, то есть.

Я ее нашел.

В строке 52 Сишного кода

 d3 = abs(r - (double)adc / 4096.0 + LSB / 2);

Нужно не "+", а "-" LSB/2.

Тогда результат такой:

среднее по    4096 = 2.4413e-04 
среднее по    4095 = 1.6434e-04 
среднее по man9913 = 1.5273e-04 
сред.кв по    4096 = 2.8230e-04 
сред.кв по    4095 = 2.0114e-04 
сред.кв по man9913 = 1.8707e-04 

На радость man9033,  его вариант на 8% лучше!

Странно, что два программиста не увидели простую ошибку.

Там еще одна есть - в среднеквадратичном нужно N под скобку внести, но эту я править не стану - она на результат не влияет.

ssss
Offline
Зарегистрирован: 01.07.2016

a5021 пишет:

получаете по сусалам

Это когда ж такое то было, ась? ))))))))))))))))))))

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

ssss
Offline
Зарегистрирован: 01.07.2016

man9913 пишет:

Неохота терять время на бессмысленный срач. Адьос амигос.

100% ! )))))))))

А за филигранный вброс - персональный респект! Сразу в очередной раз стало видно, что а5021 ничего не знает и думать не умеет. Зато на лету чудесно переобувается. Правда он, сам того не понимая, но поддержав эту идею, опять вляпался по самый родничёк. )))))))))))))))))))

ssss
Offline
Зарегистрирован: 01.07.2016

wdrakula пишет:

Если кто-то готов дискутировать о том, что модель SAR ADC в моей программе неадекватна, то прошу указать.

Ну как бы... по классике жанра... один из результатов должен быть идеальным... "Или нет?"(с)...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ладно. Думаю, в качестве точки, нужно выложить полностью лишенный ошибок код.

Вот Python

# coding: utf8
from math import *
from random import *

N = 10000

asd1=0
asd2=0
asd3=0
ald1=0
ald2=0
ald3=0

LSB=1.0/4096.0

seed()

for i in range (N):
    r = random ()

    adc = 0
    r1 = r
    for j in range (11):
        if r1 > 0.5:
            adc = adc |1
            r1 = 2.0 * r1 - 1
        else:
            adc = adc & ~1
            r1 = 2.0 * r1
        adc = adc << 1
     
    
    d1 = abs(r - adc / 4096.0)
    d2 = abs(r - adc / 4095.0)
    d3 = abs(r - adc / 4096.0 - LSB / 2)

    ald1 += d1
    ald2 += d2
    ald3 += d3

    asd1 += d1**2
    asd2 += d2**2
    asd3 += d3**2

ald1 /= N
ald2 /= N
ald3 /= N

asd1 = sqrt(asd1 /N)
asd2 = sqrt(asd2 /N)
asd3 = sqrt(asd3 /N)

print ("среднее по    4096 = %.2e \n" % ald1)
print ("среднее по    4095 = %.2e \n" % ald2)
print ("среднее по man9913 = %.2e \n" % ald3)
print ("сред.кв по    4096 = %.2e \n" % asd1)
print ("сред.кв по    4095 = %.2e \n" % asd2)
print ("сред.кв по man9913 = %.2e \n" % asd3)

Вот Online IDE, на котором можно запускать.

Вот код на С, без расширений, без С99.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define abs(x)  (((x)>=0)?(x):(-(x)))

#define N 10000
#define LSB 1.0/4096.0

int main(void) {
	// your code goes here
int adc =0;

double d1,d2,d3;
double asd1 = 0;
double asd2 = 0;
double asd3 = 0;
double ald1 = 0;
double ald2 = 0;
double ald3 = 0;

double r,r1;


int i,j;

for (i = 0; i < N; i++)
   {
    r = (double)random()/RAND_MAX;
    r1 = r;
    adc = 0;	
    
    for (j=0; j < 11; j++)
	{
	if (r1 > 0.5) 
           {
            adc = adc | 1;
	    r1 = 2.0 * r1 -1;
           }
         else
           {
            adc = adc & ~1;
            r1 = 2.0 * r1;
           }
         adc = adc << 1;
	}

    //printf("r = %f, adc= %d Iadc = %d \n",r,adc, (int)(r*4096));

    d1 = abs(r - (double)adc / 4096.0);
    d2 = abs(r - (double)adc / 4095.0);
    d3 = abs(r - (double)adc / 4096.0 - LSB / 2);

    ald1 += d1;
    ald2 += d2;
    ald3 += d3;

    asd1 += d1*d1;
    asd2 += d2*d2;
    asd3 += d3*d3;
    
   }

ald1 /= N;
ald2 /= N;
ald3 /= N;

asd1 = sqrt(asd1 /N);
asd2 = sqrt(asd2 /N);
asd3 = sqrt(asd3 /N);

printf ("среднее по    4096 = %.4e \n",  ald1);
printf ("среднее по    4095 = %.4e \n",  ald2);
printf ("среднее по man9913 = %.4e \n",  ald3);
printf ("сред.кв по    4096 = %.4e \n",  asd1);
printf ("сред.кв по    4095 = %.4e \n",  asd2);
printf ("сред.кв по man9913 = %.4e \n",  asd3);
return 0;
}

Вот Online IDE, где его можно запустить. В Project/Compile Options -lm в конце строки, из-за функции кв. корня.

Что было: gcc -o main *.c -lm

Вот еще одно онлайн ИДЕ. Там не нужно опции задавать.

====================================

Данные програмки призваны ответить окончательно на вопрос о том, как следует пользоваться АЦП на СТМ32, на Ардуинке все тоже самое, только не 4096 и 4095, а 1024 и 1023.

В программах принят Vref = 1.

r - случайное число от 0 до 1, представляет измеряемое напряжение.

Цикл по j - модель работы ADC SAR. Каждый раз сравниваем оставшееся напряжение с 1/2. Реальный АЦП последовательного приближения так и работает. Остальные элементы и переменные - говорят сами за себя.

В конкурсе участвовали три формулы вычисления наряжения по коду АЦП:

1. V =  ADC * Vref / 4096;

2. V = ADC * Vref / 4095;

3. V = ADC * Vref / 4096 + LSB/2; где LSB = 1 / 4096 - младший значащий бит.

----------

Полученные результаты (третий вариант назван в честь автора):

среднее по    4096 = 2.4413e-04 
среднее по    4095 = 1.6434e-04 
среднее по man9913 = 1.5273e-04 
сред.кв по    4096 = 2.8230e-04 
сред.кв по    4095 = 2.0114e-04 
сред.кв по man9913 = 1.8707e-04 

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

Формула, V=Vref*ADC/4095 - на втором месте.

И классика  заняла почетное третье место.

=================================================

В споре было сломано много копий и самолюбий. Произведены тонны реального и словесного поноса.

Но оно того стоило! Результат, как говорят, на лицо!

ssss
Offline
Зарегистрирован: 01.07.2016

Как ты сосёшь, когда яйца лижешь? )))))))))))))))))))

Вы с а5021 два брата-дегенерата. И это печально, но это так весело.)))))))))))))

 

a5021
Offline
Зарегистрирован: 07.07.2013

ssss пишет:

a5021 пишет:

получаете по сусалам

Это когда ж такое то было, ась?

Даже если не быть в курсе этих историй, по тому, как вы захлебываетесь собственной пеной, можно резонно предположить, что подобное случалось частенько.

ssss
Offline
Зарегистрирован: 01.07.2016

a5021 пишет:

можно резонно предположить

Твои предположения против моих фактов твоего реального долпоёпства? Смешно! )))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

"ssss и факты" -- нелепейший оксюморон.

ssss
Offline
Зарегистрирован: 01.07.2016

Да пофигу, резвись. Тебе простительно.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

wdrakula пишет:

В конкурсе участвовали три формулы вычисления наряжения по коду АЦП:

1. V =  ADC * Vref / 4096;

2. V = ADC * Vref / 4095;

3. V = ADC * Vref / 4096 + LSB/2; где LSB = 1 / 4096 - младший значащий бит.

Так в третей формуле, все таки + или - ?

a5021
Offline
Зарегистрирован: 07.07.2013

Наука этого не знает.

Плюс, конечно. Только со статистикой он все равно, похоже, наврал. Там улучшение получается заметно больше, чем 8%.

У меня вот такие результаты вышли:

  2^n - 1 2^n (+LSB/2)
мин.ош 0 0
макс.ош 250 125
Средн. 97 63
Ср.откл 56 31
Вариация 250 125
Точно 49 39
Макс. ош 10 54
ср.кв. 67 36
коэф.Вар 69% 57%
Ассиметрия 0,49858 0,00382

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

xDriver пишет:

wdrakula пишет:

В конкурсе участвовали три формулы вычисления наряжения по коду АЦП:

1. V =  ADC * Vref / 4096;

2. V = ADC * Vref / 4095;

3. V = ADC * Vref / 4096 + LSB/2; где LSB = 1 / 4096 - младший значащий бит.

Так в третей формуле, все таки + или - ?

"+". В программе было условно Vист - Vрасчетное.

И, вычитая ADC * Vref / 4096 + LSB/2, я оставил знак "+". Я же не скрываю кода, можно проверить, что было до исправления и что стало.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Дракон, объясни тогда почему в твоей проге adc/4094 дает лучше результат, чем с adc/4095.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

Наука этого не знает.

Плюс, конечно. Только со статистикой он все равно, похоже, наврал.

Ты, неуч, так и не сказал про свою вышку.

Значит нет такой. Сапоги топтал, или "ни в 3.14зду, ни в красную армию"?

С современном мире, только потомственный пролетарий останется без вышки. Или инвалид.

Раз не говоришь, значит стыдишься, и это твое больное место. Рад узнать.

С огромным удовольствием, при каждом удобном случае, напомню о твоей неполноценности!

Радость глумиться - одна из самых острых, ну после оргазма.

===========================

Ты свой "Эксель расчет" показал? А почему нет? То есть снова стыдишься?

Как же неловко-то, на людях дураком показаться.

=================================

В твою галиматью нужно верить, так? Ты ж всегда на слово другим веришь, ну и тебе - тоже верят.

"Там получается" ... ага! Так точно. И верим!

Тут, я надеюсь, все верят, что человек, без вышки, (кто не помнит, тот самый, который к 24L01 антенну из говна и палок мастырил), способен, без ошибок написать табличку в Экселе. Я вот - верю. Чесно-пречестно!

Не перевелись еще "левши" на руси! Блоху изгадить - самые спецы, а чё?

 

a5021
Offline
Зарегистрирован: 07.07.2013

wdrakula пишет:
Ты, неуч, так и не сказал про свою вышку.

Если особенности психики у вас таковы, что еще большую радость вам добавит фантазия, будто я и в школу-то никогда не ходил, ничего не буду иметь против.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Andy пишет:

Дракон, объясни тогда почему в твоей проге adc/4094 дает лучше результат, чем с adc/4095.

потому, что ближе к "идеальной кривой". А идеальная, я, к сожалению поздно, расчитал - именно ADC/4096 + LSB/2.

Я обгадил man9033, сожалею, он-то был прав, а я - нет, и доказать это легко. 

(Vreal - ADC*Vref / 4096), как случайная величина, имеет Мат.Ожидание в точке LSB / 2/. Дальше, вроде все понятно.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

 большую радость вам добавит фантазия, будто я и в школу-то никогда не ходил.

Доказательств, конечно, не будет? (с) я про школу...

a5021
Offline
Зарегистрирован: 07.07.2013

Не уверен, что я должен вам что-то доказывать.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Расклад по 100 000 итераций выглядит так (в порядке убывания точности):

среднее по:
4096+0.5LSB = 0.00015259034124347461
4095             = 0.00016276865200418541
4094             = 0.00016277199825276583
4093             = 0.00023067837824907741
4096             = 0.00024414550748756367

сред.кв по:
4096+0.5LSB = 0.00018646868960065172
4095             = 0.00019934932023849862
4094             = 0.00019935415271559465
4096             = 0.00028191354667075121
4093             = 0.00028202712726643119

ssss
Offline
Зарегистрирован: 01.07.2016

xDriver пишет:

Так в третей формуле, все таки + или - ?

А вы что, и впрямь поверили в весь этот цирк и колдовство? Я вас умоляю!

Ну ладно а5021, по незнанию своему, тырится в хрустальный шар экселя типа "Я ль на свете всех мудрее, всех  красивше и умнее? Ну а шар ему в ответ. - Да ты "красавчик"! Слова нет! По незнанке рвёшь ты дупу, норовишь залезть в залупу, "мудак"-медалей у тебя на тридцать три богатыря!", но вы то в теме, насколько помню, не первый год уже?

a5021
Offline
Зарегистрирован: 07.07.2013

Лизнул, типа?

ssss
Offline
Зарегистрирован: 01.07.2016

Ты типа сумничал, а показал себя дураком? Продолжай в том же духе. )))))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

Типа, что-то сказали? Хорош там пить.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

ssss пишет:
Я вас умоляю!
На колени, Sукин Sын. Обосрался и стой. Твое дело телячье.

ssss
Offline
Зарегистрирован: 01.07.2016

Щаззз... Ты просто жертва коллективного психологического эксперимента... )))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

wdrakula пишет:

потому, что ближе к "идеальной кривой". А идеальная, я, к сожалению поздно, расчитал - именно ADC/4096 + LSB/2.

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

ssss
Offline
Зарегистрирован: 01.07.2016

А что тут странного? Дракула просто посмеялся над вами... Вы же ведётесь... ???

a5021
Offline
Зарегистрирован: 07.07.2013

Угараем, а не ведемся.

ssss
Offline
Зарегистрирован: 01.07.2016

Сами с себя и от себя? У вас что, палата номер шесть... вообще не проветривается? )))))))))))))))))))))))

А тебе результаты твоих собственных исследований... не показались странными? Не? Вот это действительно странно! ))))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

ssss пишет:
Сами с себя и от себя?

Такое если и было бы возможно, то только в случае полной необитаемости ветки. Сейчас же поугарать есть с кого в избытке и так.

Цитата:
А тебе результаты твоих собственных исследований... не показались странными? Не? Вот это действительно странно!

Согласен. Очень странно. Формула "/4095" кажет приличные результаты не смотря на истошный визг икзпэрдов.

ssss
Offline
Зарегистрирован: 01.07.2016

a5021 пишет:

Сейчас же поугарать есть с кого в избытке и так.

Особенно с тебя и твоих "расчётов". )))))))))))))))))))))))))

А что считал то? Среднюю температуру по палате? По больнице? Или по всему больничному комплексу, включая морг и кладбище? ))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

Последнее время вы все что-то о палатах и больницах. Так сильно болит, что другая тема не идет?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

a5021 пишет:

Формула "/4095" кажет приличные результаты не смотря на истошный визг икзпэрдов.

Ты готов представить ссылку на "визг"?

===============================================

Я, должен признаться, вчера был несколько возбужден и таки набрал в Яндексе ник "A5021".

Я увидел неописуемую активность на тематических форумах. Где-то на полчаса меня захватило "познание мира".

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

Во всех холиварах - демонстративное высокомерие, полный контроль над анонимностью (не дай Б..г, написать что-то личное!), яркое стремление оставить за собой последнее слово и выставить себя правым.

===========================================================

   Так получилось, что с психологией я тоже немного знаком. сын вышку по ней получал.

Я позволю себе дилетантскую интерпретацию:

1. Явный психопат. Патологические проявления в количестве незначимых и некрепких социальных связей. Я имею в виду сетевые связи. Не умеет оценивать нужность и значение самих связей.

2. Пароноидальные комплексы. Состоят в желании быть правым всегда, с одной стороны, и скрытности, с другой. На лицо классический замес из мании величия и преследования. Даже писать скучно, настолько все банально.

3. Сама интерпретация:

  Вырос в неполной семье, с мамой. Отсюда типичный, для таких детей, нарциссизм. И постоянное желание доказать свою крутость - основанное на чувстве вины за расставание родителей(возможно и трагедия, тут мало данных, ну да хер с ним). Желание "быть лучшим" - основано на желании получить похвалу отца, которого нет. Повторюсь - либо ушел, либо исчез трагически, конкретика ни для ребенка, ни для нас - значения не имеет.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

2 ssss:

Холивар про АЦП заи.пал, конкретно.

Хочу тему сменить.

Ты ж давно в ембеде?

Что скажешь за СТМ8? Для мелких задач, вместо тиньки?  55 рублей в девборде очень привлекают.

И хочу твое мнение о холиваре SPL - HAL.

Сам ST, активно старается всех разрабов перевести на HAL, почему разрабы сопротивляются?

Вникать - ведь похеру какой хелп перед глазами открыт, когда кодишь? Если 3 года писал на SPL - то все ясно, а если с нову, то какая разница? Или я что-то не догоняю?

diger67
Offline
Зарегистрирован: 25.07.2015

Я конечно не ssss, но пообщавшись на других ресурсах сделал вывод что многие "староверы" вобще склоняются к CMSIS. К сожелению многие используют и SPL и HAL бездумно не пытаясь изучить основы и редко прибегают к чтению даташитов. По сути вопроса, мое субъективное мнение. SPL модульная библиотека, предпологает больше фантазии при работе и более детальна в работе с периферией, флагами и регистрами. HAL анансирована ST как API и имеет уже идеологию объектно ориентированного програмирования. Опятьже HAL при компиляции создает немного больший по объему код. Еще раз - это мое чисто субъективное мнение.

Logik
Offline
Зарегистрирован: 05.08.2014

wdrakula пишет:

Фраза - "не буду разбираться" - выдает безграмотного неуча.

Прикиньте, и я пришел точно к такому же выводу в дискусии с a5021 пару месяцев назад. Его ослиное упрямство, такое слепое отворачивание от изложеных фактов,  и отсутствие мышления хоть с какой либо логикой тогда  так и не позволило ему постичь что перл несколько тормознутей чем Си ))) Так что бросайте, пациент неизлечим.