a_sergeevich

Язык Си Для Микроконтроллеров

1 728 сообщений в этой теме

ARV    229
Только что, my504 сказал:

Мы то обсуждали якобы "стандарт", а он оказывается никакого отношения к ПРИМЕНЕНИЮ языка не имеет, являясь лишь указанием  писателям самого компилятора

Писатели компилятора и "применители" компилятора должны мыслить одними категориями, чтобы не возникало разночтений. Разве не так? Разночтения - это ведь потенциальный источник больших проблем!

Только что, my504 сказал:

Еще раз для глухих. Перебьетесь.

Когда у меня возникнет неразрешимый вопрос, я его задам лично Вам. Обещаю

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
my504    157
1 минуту назад, ARV сказал:

Писатели компилятора и "применители" компилятора должны мыслить одними категориями, чтобы не возникало разночтений. Разве не так? Разночтения - это ведь потенциальный источник больших проблем!

Нет, не так. У них принципиально разные задачи. Поэтому пользователь должен читать мануал на КОНКРЕТНЫЙ компилятор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Поэтому пользователь должен читать мануал на КОНКРЕТНЫЙ компилятор.

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

И в мануале на конкретный компилятор не сказано (поправьте доказательно, если я ошибся) про то, как и какой ассемблерный код генерируется на те или иные выверты программиста. Так что ваш выпад мимо цели.

Самое смешное, что вопреки вашим заявлениям, a += b < c; одинаково работает на любых компиляторах :) чего как бы и быть не должно - ведь у логического выражения нет "осязаемого" результата...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
2 минуты назад, ARV сказал:

И в мануале на конкретный компилятор не сказано (поправьте доказательно, если я ошибся) про то, как и какой ассемблерный код генерируется на те или иные выверты программиста. Так что ваш выпад мимо цели.

Еще как сказано. Целые приложения чуть ли не на половину мануала.

Я уже не говорю о разного рода методах позволяющих заставить компилятор генерировать требуемый код.

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    1
18 минут назад, my504 сказал:

Что то с русским языком - Вы не находите?  Арифметическую команду (вероятно Вы имели ввиду выражение) можно записать на АСМе. Если Вы  ДАЛЕЕ используете численный  результат  - то логический (их кстати несколько) исчезает (то есть его в общем и не было - ибо какая разница что там делает ядро, если Вы игнорируете результат). То есть в результате логической или арифметической операции на АСМе нет никаких нуля-единицы в качестве логического результата. Они появятся лишь после того, как логическое выражение станет частью численного.

Так и арифметический результат также пропадет если его не использовать сразу, если выйти из асемблерной вставки!!! Что это доказывает???

Я же написал (ну может не достаточно акцентированно) что сразу надо использовать, какая разница значения каких регистров мы используем: общего назначения или состояния, как можно строить аргументацию на этой разнице?

Значение может занимать бит регистра, может целый регистр, но и инструкции есть для доступа к отдельным битам или к специальным регистрам, что это  доказывает?

Вообще нафига нужно это разделение на логические или арифметические операции, все они битовые только с разным количеством битов на уровне ассемблера, цель должна быть когда вводим терминологию!

У Вас получается цель выделить тип операций и доказать что их не существует- ну глупость какая-то получается!

В этом разделении и есть ограниченность по моему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Еще как сказано.

Процитируйте, пожалуйста - это ведь не секретная инфа?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
1 минуту назад, ruhi сказал:

Вообще нафига нужно это разделение на логические или арифметические операции, все они битовые только с разным количеством битов на уровне ассемблера, цель должна быть когда вводим терминологию!

Разделение нужно ровно потому, что  ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением. А то, что в Си принято, что логический результат преобразуется в число - это особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД. То есть численный результат, даже если он был получен параллельно с логическим НЕ ПРИГОДЕН для Си. Его нужно преобразовать в 0 или 1.

5 минут назад, ARV сказал:

Процитируйте, пожалуйста - это ведь не секретная инфа?

Открываете мануал на XC16 и читаете сами. Это несекретный мануал, есличо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Его нужно преобразовать в 0 или 1

Не нужно - он уже int, и его можно спокойно использовать

Только что, my504 сказал:

особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД

Эта часть вашей фразы верна  для любой конструкции языка Си. Вообще любой, любого оператора, любой функции, любого действия (кроме обработки комментариев). Так что вы сказали "масло масляное", полезного в вашей фразе ровно ноль. Любая особенность языка реализуется последовательностью (из нуля или более) ассемблерных команд :)

Только что, my504 сказал:

ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением

Мне жаль, что вы так ограничены... и вам не знакома логика... Например, задачка про волка, козу и капусту - это логическая задачка, которая может быть решена средствами булевой алгебры, т.е. при помощи логических выражений БЕЗ ВЕТВЛЕНИЙ. И при этом все результаты логических выражений где-то "промежуточно" надо хранить, а затем повторно использовать...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
4 минуты назад, ARV сказал:

Эта часть вашей фразы верна  для любой конструкции языка Си. Вообще любой, любого оператора, любой функции, любого действия (кроме обработки комментариев).

Вы пытаетесь комментировать чужую беседу. Потрудитесь сначала понять ее (беседы) логику.

6 минут назад, ARV сказал:

Например, задачка про волка, козу и капусту - это логическая задачка, которая может быть решена средствами булевой алгебры, т.е. при помощи логических выражений БЕЗ ВЕТВЛЕНИЙ. И при этом все результаты логических выражений где-то "промежуточно" надо хранить, а затем повторно использовать...

А Вы реализуйте эту задачу средствами процессора и мы посмотрим потребуется ветвление или нет. 

Какое отношение булева алгебра имеет к обсуждаемому вопросу? Мы рассматривали жесткую логику?

В огороде бузина, а в Киеве дядька.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    1
25 минут назад, my504 сказал:

Разделение нужно ровно потому, что  ЕДИНСТВЕННЫМ назначением логического результата является управление ветвлением. А то, что в Си принято, что логический результат преобразуется в число - это особенность языка,  которая может быть реализована ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД. То есть численный результат, даже если он был получен параллельно с логическим НЕ ПРИГОДЕН для Си. Его нужно преобразовать в 0 или 1.

Вроде начали писать про С, а, потом, незаметно:

ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД - ассемблерных наверно???

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

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

По мне, так это Вы так решили себя ограничить при разработке Вашего кода(ну ради бога!), я например для себя вполне допускаю использование логических выражений в арифметических в Си и в ассемблерных вставках, и я Вас уверяю, я всегда знаю зачем и почему я это делаю.

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Изменено пользователем ruhi

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Открываете мануал на XC16 и читаете сами. Это несекретный мануал, есличо

Открыл вот этот документ http://ww1.microchip.com/downloads/en/DeviceDoc/50002071F.pdf

Просмотрел более 390 страниц - ассемблерные команды встретились только в разделах "ассемблерные вставки", "использование модулей на ассемблере" и еще в паре мест - про передачу параметров через стек. Всё.

Ваши слова о том, что "целые приложения" приведены, оказались пустой болтовней. Никаких особенностей генерации кода на асме в тех или иных случаев там не показано. Если вы знаете конкретное место, где это есть - потрудитесь хотя бы процитировать кусок этого текста, если уж дать конкретную ссылку вам лень. Пока что ваши слова сродни шуму дождя - приятно, но без смысловой информации.

Только что, my504 сказал:

Какое отношение булева алгебра имеет к обсуждаемому вопросу?

Логические выражения используются именно для этого, ну и для организации ветвлений заодно. Два назначения у них, понимаете ли... И если ветвления еще как-то можно присовокупить к вашим бредовым идеям, то булеву алгебру никак - там все на результатах логических выражений построено. 

Только что, my504 сказал:

Вы пытаетесь комментировать чужую беседу. Потрудитесь сначала понять ее (беседы) логику

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

Изменено пользователем ARV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
20 минут назад, ruhi сказал:

Вроде начали писать про С, а, потом, незаметно:

ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТЬЮ КОМАНД - ассемблерных наверно???

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

Вообще то это Вы перевели разговор на АСМ. Именно Вы начали мне говорить, что в результате АСМ команд арифметики получается так же логический результат.

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

То есть код сгенерированный Си из арифметических выражений содержит одну-две команды, не считая команд связанных с загрузкой-выгрузкой операндов. 

В результате  преобразования языком логических операций  в АСМ не может быть получено никакого результата соответствующего стандарту Си.  Мы естественно говорим не о поразрядной логической арифметике, а об операциях сравнения. Что бы получить соответствие стандарту нужно сгенерировать дополнительный код присвоения 0 или 1 соответствующей регистровой переменной.  Это справедливо для ЛЮБОЙ процессорной архитектуры.  Причем, если даже система команд требует  для сравнения операндов произвести арифметическую операцию, то и тогда результат этой операции не соответствует стандарту Си.

 

26 минут назад, ARV сказал:

Просмотрел более 390 страниц - ассемблерные команды встретились только в разделах "ассемблерные вставки", "использование модулей на ассемблере" и еще в паре мест - про передачу параметров через стек. Всё.

Приложение G. 

G.2 BUILT-IN FUNCTION DESCRIPTIONS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    1
1 минуту назад, my504 сказал:

... говорим не о поразрядной логической арифметике, а об операциях сравнения. Что бы получить соответствие стандарту нужно сгенерировать дополнительный код присвоения 0 или 1 соответствующей регистровой переменной.  Это справедливо для ЛЮБОЙ процессорной архитектуры.  Причем, если даже система команд требует  для сравнения операндов произвести арифметическую операцию, то и тогда результат этой операции не соответствует стандарту Си.

 

К чему эти нелепые отсылки к стандарту теперь!

Я говорю что Вы используете негодные аргументы, и что:

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Вот на это ответьте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
29 минут назад, ARV сказал:

Логические выражения используются именно для этого, ну и для организации ветвлений заодно. Два назначения у них, понимаете ли... И если ветвления еще как-то можно присовокупить к вашим бредовым идеям, то булеву алгебру никак - там все на результатах логических выражений построено. 

Я предложил решить задачу булевой алгебры на  процессоре. Вы можете ее решить без ветвлений или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Вы можете ее решить без ветвлений или нет?

Отвечу вашими словами: перебьётесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
Только что, ruhi сказал:

К чему эти нелепые отсылки к стандарту теперь!

Я говорю что Вы используете негодные аргументы, и что:

И еще раз повторяю практически любая С-операция требует ТОЛЬКО ПОСЛЕДОВАТЕЛЬНОСТи КОМАНД в ассемблере, это ничего не доказывает!!! Можете писать хоть по две буквы на одну:)!

Вот на это ответьте!

Вы не понимаете о чем я написал? Вам перевести на другой язык? Вы пытаетесь изменить логику спора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Приложение G. 

G.2 BUILT-IN FUNCTION DESCRIPTIONS.

Ну и? посмотрел... Что я там должен был увидеть? Что раскрыт ряд нюансов встроенных функций? Мы же говорим об особенностях кодогенерации того, что написал программист! Например, что будет сгенерировано в результате a+b и что в результате a<b... А там такого нет. Как я и ожидал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
Только что, ARV сказал:

Отвечу вашими словами: перебьётесь.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

То есть не можете.

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

 

Только что, my504 сказал:

Но  причем тут Си?

При том, что Си содержит достаточно инструментов для решения таких задач. В соответствии со стандартом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
Только что, ARV сказал:

Ну и? посмотрел... Что я там должен был увидеть? Что раскрыт ряд нюансов встроенных функций? Мы же говорим об особенностях кодогенерации того, что написал программист! Например, что будет сгенерировано в результате a+b и что в результате a<b... А там такого нет. Как я и ожидал.

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

Смешно говорить о генерации из  a+b. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, my504 сказал:

Я лишь написал о том, что мануал на компилятор приводит сгенерированный на Си код

Не сгенерированный, а сделанный в виде встроенных функций. Эти функции не компилируются по исходнику, они уже встроены в генератор кода на уровне ассемблера. Вы же крутой спец по ассемблеру - неужели не понимаете разницу?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
Только что, ARV сказал:

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

 

2. При том, что Си содержит достаточно инструментов для решения таких задач. В соответствии со стандартом.

1. А я не просил приводить код. Я просил лишь рассказать каким образом в процессоре можно реализовать булеву алгебру без ветвлений? Впрочем, можно использовать поразрядную арифметику, только это не будет операцией сравнения.

2. Не важно что есть в Си. В Си многое что есть. Важно во что Си это превращает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    1
6 минут назад, my504 сказал:

Вы не понимаете о чем я написал? Вам перевести на другой язык? Вы пытаетесь изменить логику спора?

Вы отказываетесь от своего аргумента написанного БОЛЬШИМИ БУКВАМИ???

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    229
Только что, ruhi сказал:

Я говорю что Вы используете негодные аргументы

В том-то и дело, что аргумент - это объективно демонстрируемый факт, а тов.@my504 факты не показывает, уходит под любым предлогом. 

Только что, my504 сказал:

Важно во что Си это превращает.

Согласен. И стандарт нам рассказывает, во что.

А булева алгебра, если вы забыли, это не только "сравнение". Это, например, и операции && || ^ ! - и их комбинациями можно составлять выражения-уравнения, которые можно вычислять/решать средствами Си.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    157
2 минуты назад, ARV сказал:

Не сгенерированный, а сделанный в виде встроенных функций. Эти функции не компилируются по исходнику, они уже встроены в генератор кода на уровне ассемблера. Вы же крутой спец по ассемблеру - неужели не понимаете разницу?!

Кто превращает текстовую строку (встроенную функцию) на Си в  АСМ команду? Не компилятор? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Артемон
      Всем привет. Просьба посодействовать в исправлении кода для термометра. Так как сам я в этом новичек, то код собирал из трех чужих проектов. Реализация такова, подключение термопары через микруху Max6675 к Atmega и вывод данных на LCD экран. В архиве прилагаю проект Atme Studio 7 и принт скрин из Протеуса. Ошибка заключается в неправильных показаниях температуры

      Test1.rar
      Вот код, чтоб не скачивать проект.

      #define F_CPU 1000000UL #include <util/delay.h> #include <avr/io.h> #include "max6675.h" #include "LCD.h" uint16_t gettemp(void); //Funktionsdeklarationen void initavr(void); //gettemp () returns absolute Temperature in Temp * 4 °C - in 1/4°-steps // uint16_t gettemp(void){ //Temperatur holen. uint8_t bit = 0, bitnr = 12; //Variablen uint8_t foo1 = 0; uint16_t Rohdata = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen bit = 15 - foo1; //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if((bit <= 14) && (bit >= 3)){ //Einfach mal die 12 relevanten von den 16 Bits ausfiltern if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... bitnr--; //zдhlen wir runter... Rohdata |= (1 << bitnr); // und schieben eine 1 an bit x }else{ //WENN dem NICHT so ist, dann... bitnr--; //zдhlen wir runter... Rohdata &= ~(1 << bitnr); //und schieben eine 0 an bit x } }else{ //weis au nimmer, was das soll. bitnr = 12; } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return Rohdata; //Das ist doch mal was ;D } // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected // (to enable this feature T- must be connected to GND) uint8_t getTC(void){ //Temperatur holen. //Variablen uint8_t TC = 0; uint8_t foo1 = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if(foo1 == 2){ //das 3. bit ist fьr uns relevant. if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... TC = 0; }else{ //WENN dem NICHT so ist, dann... TC = 255; } } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return TC; //Das ist doch mal was ;D } //Initiates the MAX6675 and IO-pins void init_6675(void){ //AVR initialisieren SO_DDR &= ~(1 << SO); CS_DDR |= (1 << CS); SCK_DDR |= (1 << SCK); //IOs setzen SO_Port |= (1<<SO); //Pullups an. (Wichtig fьr MAX6675, der kann nicht anders, hab ich festgestellt... CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. SCK_Port &= ~(1 << SCK); //SCK LO } int main(void) { init_port();// инициализируем порт ЖКИ lcd_init();// инициализируем ЖКИ init_6675(); while (1) { char buffer[8]; int temp; temp = gettemp(); temp /=4; lcd_gotoxy(0,0);//перемещаем курсор в верхний левый угол sprintf(buffer, "t=%i\xdf\C ", temp); // так как тут не плавающая запятая то числа с запятой записываются так %i.%i, код градуса записывается так \xdf lcd_putstring(buffer); } }
      вставляете код пользуйтесь тегами [CОDE][/CОDE] редактора сообщений, кнопка <>
    • Автор: igoryan
      нужно ли обрабатывать RESET просто компилятор не видит RESET_vect?
    • Автор: P32L
      Натолкните на мысль пожалуйста.Смысл в следующем.Нужно изменять задержку(Delay) из EEPROM. Контроллер PIC , язык СИ.
      Как реализовать чтение числа из ипрома ? Если не затруднит, то кусочек кода был бы очень кстати.
    • Автор: Zver2011
      Здравствуйте! Недавно начал изучать МК AVR. Читаю книги Белова. Пользуюсь программами CVAVR и Proteus. По урокам, собирал все в железе. По готовым примерам кода конечно же мне легко учиться и все в принципе понятно из описания, хоть и в программировании не силен, но как только начинаешь создавать что то свое - начинаются проблемки.
      В общем я создаю что то вроде музыкального светильника, который должен включаться от звука (голоса). Датчик звука пытаюсь реализовать на компараторе, плавное включение света - ШИМ, а генерация мелодии (пищалки) благодаря таймеру Т1 и его прерыванию. Куски кода брал из разных чужих самоделок, вот только объединить не удается.
      В железе работает как будто цветомузыка какая-то. Мелодия не играет, Я думаю это из-за неправильной конфигурации компаратора, а также схемы. Вот это основной вопрос у меня. Ну и собственно основной цикл программы, там я думаю тоже накосячил.
      Помогите мне разобраться до конца, понять ошибки в коде, мне самому интересно вот только С - язык тяжеловатый на мой взгляд и без помощи знающих не обойтись))

      КОД.txt
    • Автор: sensey88
      Продам счетчики бета-гамма излучения новые заводская упаковка
      Си1Г (79г) 62 шт. 5000р
      Си21БГ (79г) 49 шт. 350р
      Си22БГ (79г) 70 шт. 700р
      Си3БГ (84г) 20 шт. 300р
      Си3БГ (78г) 46 шт. 250р
      Си3БГ (77г) 10 шт. 250р
      Си3БГ (79г) 18 шт. 250р
      Си3БГ (75г) 10 шт. 200р
      Си37Г (80г) 40 шт. 400р
      Си37Г (76г) 24 шт. 350р
      Си37Г (79г) 16 шт. 350р
      Си33Г (78г) 28 шт. 450р
      Си33Г (77г) 15 шт. 450р
      СБТ13 (78г) 2 шт. 3000р
      СБТ13 (76г) 3 шт. 2700р
      СБТ13 (69г) 3 шт 2500р.
      Си8Б (79г) 1 шт. 2500р
      Си8Б (78г) 1 шт. 2500р
      СБТ10 (79г) 3 шт. 4500р
      8 (910) 7051241 Евгений
      bishop-x@yandex.ru
  • Сообщения

    • 13007 - до ~400 Вт (при Ic макс=6 А, допустимо - 8 А), 13009 - до ~600 Вт (при Ic макс=9 А, допустимо - 12 А), Только знание одного этого факта вам ничего не гарантирует - вслед за сменой ключей, потребуется замена обвязки базовых цепей, и, возможно, управляющего трансформатора с транзисторами раскачки.  
    • Здравствуйте. Я делаю сетевой фильтр http://cxem.net/pitanie/5-183.php Мотаю вторую катушку. Автор статьи пишет, что нужно 2 обмотки по 78 витков, и индуктивность каждой катушки 120 мГн. У меня есть пару вопросов. Я хочу измерять индуктивность по этой методике: 1. Можно ли не 10 кГц а 1 кГц использовать? 2. Какая должна быть амплитуда сигнала? 0.775 В с аудиокарты пойдет или надо больше? Могу через усилитель больше подать. Но надо ли? 3. Точно форму сигнала надо синусоиду? 4. Какой мощности нужно ставить переменный резистор, я прикинул, при 120 мГн и 1000 Гц, резистор надо около 1.5 кОм, ну или переменник на 4.7 кОм и покрутить. Возможно легче поставить 1.5 кОм а потом катушку отматывать\наматывать, пока не будет одинаковое напряжение. Я же правильно все понимаю, из этой формулы расчетное сопротивление катушки должно быть 2*Пи*f*L = 6.28*1000*0.12 (120 мГн = 0.12 Гн) = 1500 Ом примерно. Правда тут интересный момент, там написано f=10 кГц, а я взял как будто измерения проводятся при 1000 Гц. Можно ли мерять таким способом индуктивность 120 мГн при частоте источника 1000 Гц? Потому, что вдруг сопротивление как-то еще зависит от частоты генератора, или допустим частоту генератора надо подбирать в соответствии с диапазоном в который попадает измеряемая индуктивность? Кстати проблемы мерять напряжение при 10 кГц в принципе у меня нету. Можно взять стрелочный вольтметр. Ему же все равно какая частота по большому счету. Либо через диодный мостик пустить стрелочный вольтметр по постоянному току.  
    • Их можно скучковать
    • Стабилизатор Назара лучше посмотреть на его странице: стаб
      А приведённая выше схема к Назару, на сколько знаю, отношения не имеет. 
    • Кажется вот в чём проблема. Не знаю видно ли это будет здесь на фото. Вот на резинке со стороны контактов, где нанесён этот чёрный токопроводящий слой, есть такие пимпочки с как бы кольцами что ли... И вот, на некоторых клавишах оби эти пимпочки с кольцами торчат нормально, а на некоторых одна торчит, а другая вдавлена. Пробовал выпрямить - не хочет. Только одного не пойму: обе должны торчать или обе должны быть вдавлены, скорее всего думаю, что выпуклыми должны быть обе, но в любом случае по ходу неисправность нашлась. С этой резиной уже вряд ли что-то сделаешь, как-то где-то теперь искать...