Jump to content

На чем писать  

584 members have voted

  1. 1. Что чаще используете в разработках?

    • Assembler
      162
    • C
      297
    • Что-то еще
      64


Recommended Posts

Это точно,после того как войдеш во вкус возвращаться назад как-то уже и не охота.

Share this post


Link to post
Share on other sites

ASM.

Почему? Ну, причин много.

1) Контроллер - устройство довольно-таки простое и задачи оно как правило выполняет не особой сложности (по крайней мере, у меня так), поэтому не вижу причины писать проги для него на высокоуровневых языках.

2) AVR ассемблер несложен - всего-то, 118 команд.

3) У асмы очень простой синтаксис.

4) Из других языков знаю только Pascal. Синтаксис Си для меня крайне неудобоваримый.

Share this post


Link to post
Share on other sites

>>1) Контроллер - устройство довольно-таки простое и задачи оно как правило выполняет не особой сложности (по крайней мере, у меня так), поэтому не вижу причины писать проги для него на высокоуровневых языках.

Простое, то оно простое, но задачи может решать достаточно сложные.

>>2) AVR ассемблер несложен - всего-то, 118 команд.

Если пересчитать количество "ключевых" слов СИ, то получаться меньше 118

>>3) У асмы очень простой синтаксис.

ldi r17,18

и потом ищи где r17 равен 18, а где регистр еще на что понадобился и было внесено новое значение.

unsigned char r17 = 18;

В зависимости от места объявления, очень четкие правила жизни и области видимости данной переменной.

>>4) Из других языков знаю только Pascal. Синтаксис Си для меня крайне неудобоваримый

не буду комментировать


Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

Share this post


Link to post
Share on other sites

Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее

А как вы на пример на асме делите на 10? Я на си пишу А=А/10; и не заморачиваюсь.

Посчитать и на си все можно, обычно все компиляторы генерят асм файл. Открой и посмотри нужный кусочек. Любой отладчик даже показывает время выполнения каждой команды (сам считает). В той же AVR Studio можно открыть окно дизасемблера и видно что наваял тебе компилятор. К стати ваяет вполне себе не плохо. Не надо думать о инициализации стека, о том какие регистры можно использовать для загрузки константы, какие нет. Все функции, что компилятор транслирует с Си на Асм (например for) писали такие же программисты на асме и не дурнее нас с вами. Разное написание одного и того же цикла на си дает конечно разные результаты на асме, ну так ведь можно поиграться и посмотреть, что для этого компилятора лучше использовать и т.о. писать оптимальный код.


Купи два беляша и собери из них кошку

Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)

Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).

Share this post


Link to post
Share on other sites

Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее

Где-то проскальзывала прикидка, что Ассемблер вчетверо быстрее С

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

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

А как вы на пример на асме делите на 10? Я на си пишу А=А/10; и не заморачиваюсь.

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

В чем недостаток ЯВУ, так это в том что невозможно выбрать конкретную реализацию алгоритма в конкретных условиях. Ведь не векрет что одно и то же действие можно реализовать многими способами, которые обладают своими характеристиками 1) быстродействием 2) занимаемыми ресурсами 3) количеством программной памяти. И как правило они взаимоисключающие.

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


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Новинки гибридных конденсаторов: преимущества технологии

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

Подробнее

Кто то пробовал через пол года открыть собственную программу на Си или на асм, в которой скажем так около 2000 строк. Интересно сколько времени уйдет на редактирование и хотя бы вспоминание кода. Я Даже не говорю уже о чужом коде :ph34r:


чем шире кругозор, тем тупее угол обозрения

Share this post


Link to post
Share on other sites

Свой код на Ассме (такого размера) обновляется в памяти минут через 30-ть (код все же СВОЙ). И сразу же бросаются в глаза алгоритмы, которые можно (и нужно) оптимизировать еще. Появляется мысль "чем думал, когда писАл". :)

Share this post


Link to post
Share on other sites

Открыл, посмотрел ... сразу пришло в голову мысль что можно было активно использовать макроподстановки и как-то упорядочить все. Идея алгоритма сразу обновилась в голове по коментариям. Написано все на АСМе. Правда строк всего 850.

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


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Пишу на Ассемблере. В среде AVR Studio 4.


Прошиваю всё, что попадает в руки. Начиная с микроконтроллеров, заканчивая девушками.

Share this post


Link to post
Share on other sites
А как вы на пример на асме делите на 10? Я на си пишу А=А/10; и не заморачиваюсь.

И получаешь универсальный код на АСМе' date=' который можно было бы во многих случаях сократить раза в 4.

В чем недостаток ЯВУ, так это в том что невозможно выбрать конкретную реализацию алгоритма в конкретных условиях. Ведь не векрет что одно и то же действие можно реализовать многими способами, которые обладают своими характеристиками 1) быстродействием 2) занимаемыми ресурсами 3) количеством программной памяти. И как правило они взаимоисключающие.[/quote']

При решении конкретной задачи хотелось бы сосредотачиваться именно на решаемой задаче, а не на оптимизации на асемблере кода процедуры деления на 10 :), кроме тогов 4 раза - это наврядли. компилятор транслирует в асм используя действительно готовые процедуры написанные на том же ассемблере, почему же вы считаете, что тот кто писал эту библиотеку на асме идиот и не может ее оптимально написать? Скорость разработки приложения на с в разы выше чем на асме, при этом грамотно используя компилятор получается очень не плохой код.

Свой код на Ассме (такого размера) обновляется в памяти минут через 30-ть (код все же СВОЙ). И сразу же бросаются в глаза алгоритмы, которые можно (и нужно) оптимизировать еще. Появляется мысль "чем думал, когда писАл". :)

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

Edited by Panda_y2k

Купи два беляша и собери из них кошку

Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)

Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).

Share this post


Link to post
Share on other sites

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

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

Почему же? Про идиотизм библиотек никто не говорил. Люди, которые их пишут, совсем не идиоты (они прекрасно понимают, кто их библиотеками будет пользоваться). Именно поэтому библиотеки адаптируются под универсальность применения, чтобы чел не заморачивался вопросом КАК ЭТО СДЕЛАТЬ, а просто писАл A=B/10 и делал это спокойно в любых алгоритмах. Но какой бы программист-библиотечник не был, он не сможет предвидеть какими регистрами программист-пользователь будет пользоваться активно, а какие у него будут простаивать без дела. Поэтому библиотеки часто используют наиболее стандартный набор регистров во всех алгоритмах. Чего только стоит "жонглирование" со стеком при переходах из функции в функцию (многкратные сохранения и восстановления, без которых можно спокойно обойтись, выбери другой регистр для операции). Однако существует ряд причин, когда нужно принять именно решение КАК ЭТО СДЕЛАТЬ ПРОЩЕ (ОПТИМАЛЬНЕЕ). Например нехватка памяти МК или же жесткие требования к времени выполнения программы (алгоритма). Вот тут Асм может помочь и очень существенно.

Насчет равнозначности кодов на Си и на Ассемблере не согласен. Ты ведь сам сказал, что на Си решается сама задача, а на Асме еще и ее выполнение. Поэтому в тексте на Асме гораздо больше информации, которую требуется восстановить, подойди к вопросу через промежуток времени.

Я не хвалю один язык перед другим. Оба хороши. Но ввиду того, что я некоторым образом эстет, что в электронике, что в программировании. Мне больше нравится Асм, потому как есть в нем путь к дальнейшему совершенствованию уже написАнного кода (как и в схемах). 

Edited by Геннадий

Share this post


Link to post
Share on other sites

Помогите народ. Пробую компилировать прогу в ICC for AVR, подключил файлы, которые даны сдесь для работы с графикой. При компиляции пишет:

!ERROR file 'ks_1.o': undefined symbol '_Delay_ms'

!ERROR file 'ks_1.o': undefined symbol '_Delay_mks'

C:\iccv7avr\bin\imakew.exe: Error code 1

В чем дело?

Share this post


Link to post
Share on other sites

ИМХО:

Пока не поздно перейдите на другой компилятор. Или поздно?

Например мои предпочтения:

IAR

GCC

Код вижен (куда же без него)

ICC - судя по форумам мало распространен. Еще бы, платный да с прибомбасами


Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

Share this post


Link to post
Share on other sites

Пишу на ассемблере,на днях попробовал си мое мнение ассемблер намного понятнее там что написал то и получил а Си больше походит на магию,одни указатели чего стоят, а на ассемблере это всего лишь команда ldd.

Не стоит особо ломать копья, рациональней писать на С с ассамблерными вставками. Т.е. критичные участки по быстродействию на ассеблере и остальное на С.

Share this post


Link to post
Share on other sites

Возможно на си писать проше, но на асм зато понятно что и как делается (меняется понимание програмного кода).

Начинал писать на асм для компа еше под 95 винду, затем паскаль со вставками асм, теперь делфи. Потихоньку осваиваю си для мк. (так просто для себя)

P.C. И не считаю что время потерял.

Share this post


Link to post
Share on other sites
Чего только стоит "жонглирование" со стеком при переходах из функции в функцию (многкратные сохранения и восстановления, без которых можно спокойно обойтись, выбери другой регистр для операции). Однако существует ряд причин, когда нужно принять именно решение КАК ЭТО СДЕЛАТЬ ПРОЩЕ (ОПТИМАЛЬНЕЕ). Например нехватка памяти МК или же жесткие требования к времени выполнения программы (алгоритма). Вот тут Асм может помочь и очень существенно.

Насчет равнозначности кодов на Си и на Ассемблере не согласен. Ты ведь сам сказал, что на Си решается сама задача, а на Асме еще и ее выполнение. Поэтому в тексте на Асме гораздо больше информации, которую требуется восстановить, подойди к вопросу через промежуток времени.

Я не хвалю один язык перед другим. Оба хороши. Но ввиду того, что я некоторым образом эстет, что в электронике, что в программировании. Мне больше нравится Асм, потому как есть в нем путь к дальнейшему совершенствованию уже написАнного кода (как и в схемах).

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

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

Кто то пробовал через пол года открыть собственную программу на Си или на асм, в которой скажем так около 2000 строк. Интересно сколько времени уйдет на редактирование и хотя бы вспоминание кода. Я Даже не говорю уже о чужом коде :ph34r:

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


Купи два беляша и собери из них кошку

Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)

Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).

Share this post


Link to post
Share on other sites

Для этого существуют комментарии и макро-определения.

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

Edited by Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

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


Купи два беляша и собери из них кошку

Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)

Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).

Share this post


Link to post
Share on other sites

дайте ссылку на отладчик на С для atiny2313, чтобы немного весил или скорость скачки была нормальная. Желательно под SP2

Edited by john-339

Share this post


Link to post
Share on other sites

AVR Studio + WinAVR не устраивают?

Или любой компилятор (Си, Асма, да хоть бейсика) + Proteus?


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

Ради интереса выкладываю простенькую программу написанную и отлаженную на Си примерно за 30 минут. Кто перепишет её на ассемблере? И за сколько времени?

/*****************************************************
Project : Comparator
Version : 1.0
Date	: 05.12.2011
Author  : mazzi
Company : Reanimator Extreme Edition

Chip type   			: ATtiny2313
AVR Core Clock frequency: 8.000000 MHz
Memory model        	: Tiny
External RAM size   	: 0
Data Stack size 		: 32
*****************************************************/

#include <tiny2313.h>

#define LED  PORTB.2
#define JMP1 PINB.6
#define JMP2 PINB.7

#define M_OFF_BLINK 0x00
#define M_ON_BLINK  0x01
#define T_BLINK 	0x10

#define LED_ON  0
#define LED_OFF 1

#define VOL_LO  1000
#define VOL_HI  5000
#define VOL_MAX 6000 

typedef unsigned char uchar;
typedef unsigned int  uint;

bit f_10ms;
uchar mode = M_OFF_BLINK;
uchar t_blink = 0;
uchar bit_blink = 0;
uint  volume;
void handler_blink(void);

//===============================================
// Timer1 overflow interrupt service routine
// период 10мс
interrupt [TIM1_OVF] void timer1_ovf_isr(void) {
  TCNT1H=0xFB1D >> 8;
  TCNT1L=0xFB1D & 0xff;
  f_10ms = 1;
}

void main(void) {
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Reset Source checking
  if (MCUSR & 1)   {   // Power-on Reset
  	MCUSR=0;
  	volume = 0;
  }
  else if (MCUSR & 2)   {   // External Reset
  	MCUSR=0;
  	volume = 0;
  }
  else if (MCUSR & 4)   {   // Brown-Out Reset
  	MCUSR=0;
  }
  else   {   // Watchdog Reset
  	MCUSR=0;
  // Place your code here
  };

// Input/Output Ports initialization
PORTA=0x00;
DDRA=0x00;
PORTB=0xC4;
DDRB=0x04;
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125.000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x03;
TCNT1H=0xFB;
TCNT1L=0x1D;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x80;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Global enable interrupts
#asm("sei")

  while (1)   {
  	if ( f_10ms ) {
       	f_10ms=0;
       	handler_blink(); 
       	if ( ACSR & 0x20 ) { //if ( Uin < Uop ) {
    			if (  volume < VOL_MAX ) volume++; 
    			if (( JMP1 == 0 )&&( volume < VOL_MAX )) volume++; 
    			if (( volume >= VOL_HI )&&( mode == M_OFF_BLINK )) mode = M_ON_BLINK;
       	}
       	else	{
    			if ( volume > 0 ) volume--;
    			if (( JMP1 == 0 )&&( volume > 0 )) volume--;
    			if (( volume < VOL_LO )&&( mode == M_ON_BLINK )) mode = M_OFF_BLINK;
       	} 	
       	if ( JMP2 == 0 ) {
    			if ( ACSR & 0x20 ) mode = M_ON_BLINK;
    			else   			mode = M_OFF_BLINK;
       	}
  	}
  	#asm("wdr")
  };
}

//========================================
void handler_blink(void) {
if ( mode == M_ON_BLINK ) {
   	if ( t_blink ) t_blink--;
   	else {
			t_blink = T_BLINK;
			bit_blink++;
			if ( bit_blink & 1 ) LED = LED_ON;
			else     			LED = LED_OFF;   
   	}
}
else LED = LED_OFF;
}


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

Тоже за пол часа, не больше. Если конечно ЗАРАНЕЕ знать что должна делать программа.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Так написано же :) Время пошло... :)


Любой, заслуживающий внимания, опыт приобретается себе в убыток...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Тоже интересно, какой смысл продвигать это на радиолюбительском форуме. 90% пользователей в состоянии собрать подобное самостоятельно ( и даже найдут это более привлекательным, чем покупка). Вам куда - нибудь в ВК-шечку с этим надо, или какие там соцсети сейчас в тренде.
    • Пашка,берем? https://zen.yandex.ru/media/id/5c4ddcc896aa1b00ad655aea/top-10-samye-dorogie-alkogolnye-napitki-v-mire-2019-goda-5c50c8d0a1502300ad0f479b Правда который за 43 миллиона долларов без акцизки,это плохо
    • Радиаторы мощнецкие..на них можно по 1000ватт с усилителя снимать..
    • Вот из подборок... Входной транзистор. Здесь следует применять малошумящие транзисторы. На данный момент самыми доступными кандидатами являются 2SA970 (берите с индексом BL) и BC560С. Тут я не заморачивался и поставил то, что удалось достать быстрее – 2SA970BL. BD139/137 – порадовали звучанием BD137 производства Philips и BD139 производства Fairchild. Последние поставляются в изолированном корпусе, что облегчает монтаж на радиатор. Разница в звучании на уровне нюансов. и еще 2SC3421
    • это сарказм или тупость??? уголок длиной ДВА метра забивается в землю на ПОЛТОРА метра,  к выступающему куску  прикручиваем провод... высота  0,5 метра - предложено только для удобства  работы....   браться за него будет удобно только лежа пьяным ...  если такая ситуация часто, забей уголок полностью...   у меня и соединение находиться под землей....     я прости фигею от обилия тупости в ответах...... 
    • идиотская идея.....   светодиоды дохнут еще быстрее чем лампы... и если лампы поменять быстро , то один светодиод менять нет смысла - опять менять все...   Для начала осмотр БП и инвертора ламп на предмет неисправных электролитов.. Второе - собрать и включить - 99% что все будет норм и еще проработает 10 лет.... 

  • Адресная светодиодна лента WS2812B.

  • Similar Content

    • By dodik
      Необходимо разработать программу-конвертер для установщика компонентов TVM802
      из формата Proteus ( дан в приложении) в формат  .csv 
      информация тут :
      https://mysku.ru/blog/taobao/66380.html
      Аналогичная разработка https://github.com/nica-f/tvm802-mdgen
      Начальная стоимость ... пусть будет 5т. руб . Торг уместен .
      Конкретные предложения лучше присылать в личку .
       
      proteus.PKP
    • By 3цераптор
      Аутомотив Солюшенз Груп, (ASG) входящая в группу компаний VK Electronics, открывает вакансию программиста микроконтроллеров. На данный момент компания ведет свою деятельность по трем направлениям:
      Разработка автомобильной электроники (блоки управления для сбора данных);
      Системы управления автопарком;
      Промышленная электроника (система "умный дом" SOHO)
      Сотрудничая с нами, Вы будете находиться на острие новых технологий, заниматься исследованием и креативной разработкой, а не банальным написанием кода в жестких условиях ТЗ. Мы позволим Вам самостоятельно принимать решение и находить новые технологии реализации Ваших идей.
      Вы заинтересованы в собственном развитии и Вам интересны новые технологии, а так же Вы желаете стать частью команды современной компании?Ждем Ваших откликов!
      Что нужно делать:
      разрабатывать прошивки для микроконтроллеров;
      участвовать в составлении ТЗ в составе рабочей группы проекта.
      Мы хотим видеть специалиста с...
      Профильным образованием, рассматриваем выпускников ВУЗов;
      Знанием языков программирования;
      Знанием ОС FreeRTOS, Linux;
      Умением программировать чисто, без мусора в коде и стандартных библиотек;
      Умением самостоятельно, а главное быстро разбираться и искать пути решения интересных и трудных задач;
      Знанием архитектур на ядре ARM7,Contex-M3, Contex-M4;
      Опытом работы с процессорами STM 32F1/2/3/4, NXP, Texas industries;
      Знанием протоколов CAN, CANOpen, RS232, RS485;
      Опытом работы с беспроводными модулями GSM,GPS,WiFi и их аппаратными реализациями;
      Опытом разработки ПО для серийных изделий.
      Мы предлагаем:
      ЗП по итогам собеседования, от 80 000 руб.
      Адекватную мотивацию как по ЗП, так и по бонусам;
      Комфортный офис, расположенный в самом центре г. Воронежа;
      Необходимое оборудование для продуктивной работы;
      Пятидневная рабочая неделя, с 9 до 18 часов ( возможно смещение времени работы);
      Работа в молодой команде профессионалов;
      Возможность работать с реальными проектами, видеть результаты креативной работы;
      Сладости для питания мозга :).
    • By Alan247
      Представляю на ваш суд:    https://thisismyhobby.ru/AVR_PAL_W.php   Ваше мнение?
       

    • By Prozac
      Здравствуйте, уважаемые форумчане! Вообще говоря, не имею такой привычки - донимать людей вопросами, и до всего стараюсь доходить самостоятельно. Но в данном случае без "помощи зала" совсем никак: перепробовал уже все, что только смог придумать - а "воз и ныне там! Поэтому и обращаюсь сюда - возможно, кто-то уже сталкивался с чем-то подобным, и сумел найти решение...
      Суть проблемы в следующем: решил построить ШИМ-контроллер для автомобильного вентилятора охлаждения ("карлсона"), но никак не могу заставить его работать - как только открываются VT2 и VT3, подключая нагрузку, МК уходит в резет или виснет (чаше - первое)!.. Сбросившись, опять пытается подключить нагрузку, и опять резетится, и так - без конца! Причем, изначально решил испытать схему не на индуктивной нагрузке (электромоторе), а на вполне себе пассивной 60Вт (около 3A по току) лампочке из фары - и та же фигня: МК пытается запуститься, сбрасывается, лампа моргает, дергается... Даже не ШИМ, а обычное мигание лампой с частотой 1Гц через несколько вспышек или вешает МК, или резетит его (что видно по сбою ритма моргания). При этом без нагрузки - по осциллографу, подключенному к ноге 5 МК или к нижнему (по схеме) выводу R7 - все отлично: наблюдается ровный и чистенький ШИМ-сигнал, изменяющийся согласно тестовой программе! Однако, стоит подать нагрузку, как осциллограмма начинает прыгать: появляются ШИМ-импульсы, затем ровная линия, затем снова импульсы с тем заполнением, которое должно быть в самом начале программы... Собственно, это наблюдение и позволило сделать вывод о том, что МК перезагружается.
      Естественно, первая мысль - слабый лабораторник (он у меня импульсный, самодельный, где-то на 3А - действительно слабый; но та же петрушка наблюдалась и при попытках питать устройство от трансформаторного ЗУ на 10А). Ну, пригнал машину, снял с нее аккум (100% свежий и не дающий просадок!), запитал от него - однако проблема повторилась... Значит, дело не в питании!.. Пробовал много различных танцев с бубном: отключал внешнюю цепочку сброса R2-C2 (результат - ноль), включал BOD микроконтроллера (стало еще хуже), подвешивал вместо C4 и C6 электролиты большей емкости (не помогло)... Думал, что, возможно, кондеи C4 и C6 разряжаются через R7 - экспериментировал с его сопротивлением (от 100 до 960 Ом), перекидывал его верхний вывод на анод VD1 (чтобы отсечь резистор от фильтрующих C4 и C6) - тщетно... Грешил даже на то, что какие-то проблемы вносит емкость затворов VT2 и VT3 - уменьшал сопротивление R10 и R12, дабы затвор быстрее "разряжался" - безрезультатно...
      Игрался с частотой МК и ШИМ - перебрал частоты ШИМ от 18 до 4687 Гц; пытался запускать нагрузку с разным заполнением ШИМ, от 10 до 40% - как глючило, так и глючит... Т.е., перелопатил, практически, всю схему!
      Удалось заставить устройство нормально работать на лампу, и даже на пару спаралеленных электродвигателей МЭ218 (от "печки") следующим образом: R8 был исключен (вместо него - перемычка), а C7 (изначально - К73-17В всего на 0,47мкФ) был заменен на пару электролитов по 1500мкФ, включенных плюс к плюсу последовательно (для устранения полярности кондеев). Нагрузка стала нормально подключаться, отрабатывать как на повышение, так и на убывание заполнения ШИМ. Двигатели отлично работали как при ступенчатом изменении ШИМ-заполнения, так и при плавном. Единственное, что при попытке подать на двигатели ШИМ с заполнением менее 20%, МК опять начинал дергаться и резетить, а так же резетил при резком отключении движков: если раскрутить их до 100%, а потом снять сигнал, то МК перезагружался; однако, если после 100% плавно понижать обороты где-то до 40%, и лишь потом снимать сигнал, то схема работала нормально. Плюс, очень сильно нагревались электролиты C7...
      Однако, когда принес схему в машину - для отладки непосредственно в "боевых условиях", и подключил мощный двигатель вентилятора, началась старая песня с резетами...
      Сейчас, вроде бы, "осенило" - поменял VD2 на Шоттки 1N5822 - лампочка запустилась на "ура" даже без С7; так же отлично и мягко стартовала спарка из МЭ218 - радостный побежал к машине... Но с "карлсоном" - опять мимо: МК вновь ушел в перезагрузку... Все: я не знаю, что тут делать - каждую деталь уже перелопатил, и кучу вариантов испробовал!!! Но ничего не понятно(( Вот и прошу помочь: может быть, кто-то уже был в такой ситуации, и как-то решил подобную проблему?
      VT2 и VT3 стоят "фирменные", IR-овские (не Китай) - из "Чип и Дипа". ATtiny13 - с Алиэкспресс; чтобы исключить возможность брака конкретной микросхемы, пробовал ставить в схему несколько разных экземпляров МК (из одной посылки). DS18B20 пока еще не подключал (нужно разобраться с ШИМ!). IRF3205 каскадированны для уменьшения нагрева (хотя его и так практически нет), и для дополнительной надежности (чтобы в случае выхода из строя одного транзистора не перегреть машину). Тестовую программу специально написал "китайским стилем", без циклов и т.п. - чтобы она была максимально простой, наглядной и линейной - для уверенности, что не в ней дело.
      Подскажите пожалуйста - откуда эти резеты, и как с ними бороться? Как заставить схему отрабатывать на мощную нагрузку? Заранее благодарю!!!
       
       
      ;*************ТЕСТОВАЯ ПРОГРАММА************* ;============ДИРЕКТИВЫ ТРАНСЛЯТОРУ=========== .device ATtiny13 .include "tn13def.inc" .list ;Обзывательство регистров .def Temp = R16 .cseg .org 0x00 ;=========ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ======== rjmp Begin //Начальный сброс reti //Внешнее прерывание INT0 reti //Изменение состояния любой линии reti //Переполнение T0 reti //Готовность EEPROM reti //Срабатывание компаратора reti //Совпадение в канале A таймера T0 reti //Совпадение в канале B таймера T0 reti //Переполнение сторожевого таймера reti //Завершение преобразования в АЦП ;============МОДУЛЬ ИНИЦИАЛИЗАЦИИ============ Begin: ;-----Инициализация стека ldi Temp, RAMEND out SPL, Temp ;-----Отключение компаратора ldi Temp, 0x80 out ACSR, Temp ;-----Настройка портов ldi Temp, 0b00000111 out DDRB, Temp //PB0 - на вывод ;-----Настройка ШИМ ldi Temp, 0b11000001 out TCCR0A, Temp //Режим - быстрый ШИМ с инверсией ldi Temp, 0b00000010 out TCCR0B, Temp //Делим тактирование таймера на 8 rjmp Start //При старте пропускаем 5-секундную задержку ;===============ТЕСТОВЫЙ ЦИКЛ================ PWM: ldi Temp, 0b00000000 out OCR0A, Temp //ШИМ=0% rcall Delay5sec //Ждем 5 сек ;-----Повышаем скорость Start: ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 255 out OCR0A, Temp //ШИМ=100% rcall Delay2sec ;-----Понижаем скорость ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec rjmp PWM //Возвращаемся, и начинаем с 5 сек "молчания" ;===========ПОДПРОГРАММЫ ЗАДЕРЖКИ============ ;-----Задержка в 2 секунды Delay2sec: ldi R17, 253 ldi R18, 75 ldi R19, 29 L1: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L1 nop ret ;-----Задержка в 5 секунд Delay5sec: ldi R17, 253 ldi R18, 61 ldi R19, 73 L2: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L2 nop ret  

    • By Дмитрий Чуков
      Необходимо составить программу, которая формирует сигнал с частотой 1 кГц и скважностью 4 при помощи таймера. В CodeVision AVR написать программу и после в протеусе проверить, целый день уже бьюсь, не могу разобраться с таймерами. Вроде задача не трудная, если бы увидел, как это должно выглядеть в коде... Как настроить таймер для ATMega8A и решить эту задачу?
×
×
  • Create New...