Перейти к содержанию

Таймер ATtiny13A каждый такт на частоте 9.6 МГц


dubrovkin

Рекомендуемые сообщения

Всем привет! Вот код на C (использую MPLAB X IDE):

Спойлер
#include <avr/interrupt.h>
#include <avr/io.h>

typedef unsigned char															UInt8;

#define R																		50
#define G																		50
#define B																		50

#define B0()																	\
	asm volatile(																\
		"ldi R16,0b00001100"											"\n\t"	\
		"out %[PORT],R16"												"\n\t"	\
		"nop"															"\n\t"	\
		"ldi R16,0b00001000"											"\n\t"	\
		"out %[PORT],R16"												"\n\t"	\
		:																		\
		: [PORT] "I" (_SFR_IO_ADDR(PORTB))										\
	);

#define B1()																	\
	asm volatile(																\
		"ldi R16,0b00001100"											"\n\t"	\
		"out %[PORT],R16"												"\n\t"	\
		"nop"															"\n\t"	\
		"nop"															"\n\t"	\
		"nop"															"\n\t"	\
		"nop"															"\n\t"	\
		"ldi R16,0b00001000"											"\n\t"	\
		"out %[PORT],R16"												"\n\t"	\
		:																		\
		: [PORT] "I" (_SFR_IO_ADDR(PORTB))										\
	);

UInt8 rb;
UInt8 gb;
UInt8 bb;

inline void delay(void);
inline void set(UInt8 r,UInt8 g,UInt8 b);
void send(void);

int main(void)
{
	cli();
	
	DDRB=0b00000111;
	PORTB=0b00001000;
	
	while(1)
	{
		delay(); set(R,0,  0); send();
		delay(); set(R,G/2,0); send();
		delay(); set(R,G,  0); send();
		delay(); set(0,G,  0); send();
		delay(); set(0,G,  B); send();
		delay(); set(0,0,  B); send();
		delay(); set(R,0,  B); send();
		//delay(); set(R,G,  B); send();
		delay(); set(0,0,  0); send();
	}
}

inline void delay(void)
{
	for(UInt8 i=0;i<255;++i)
	{
		for(UInt8 j=0;j<255;++j)
		{
			for(UInt8 k=0;k<16;++k)
			{
				asm volatile("nop"::);
			}
		}
	}
}

inline void set(UInt8 r,UInt8 g,UInt8 b)
{
	rb=r;
	gb=g;
	bb=b;
}

void send(void)
{
	for(UInt8 i=0;i<3;++i)
	{
		UInt8 cb;
		
		if(i==0)
			cb=rb;
		else if(i==1)
			cb=gb;
		else
			cb=bb;
		
		for(UInt8 j=0;j<8;++j)
		{
			if((cb & (1<<(7-j)))>0)
			{
				B1();
			}
			else
			{
				B0();
			}
		}
	}
}

 

В коде закомментирована строка отправки белого цвета (на самом деле серый, но не важно). Без белого цвета работает правильно. Стоит её раскомментировать, так поведение меняется. К примеру, загорается красный, оранжевый, жёлтый, зелёный, голубой, синий, фиолетовый, белый и он остаётся слишком долго, пропуская выключение цвета. Потом красный и так далее, доходит до белого и может пропуститься или следующий цвет стать ярче (или вообще не белый будет). В общем там непонятные для меня вещи. Могу лишь сказать то, что последовательности из красного, оранжевого, жёлтого, зелёного, голубого, синего, фиолетового, белого, выключенного и по кругу, я не добился. Мне сказали что ошибка в коде. Где?)

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

 В даташите на светодиод на 5 стр.  есть    "ret code"  . Возврат от последнего светодиода линейки к первому , епп  . Может причина в несоблюдении  ?   

WS2812B.pdf

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

Может причина в несоблюдении  ?   

Ну это вы привели свой код в соответствие с ДШ, а ТС с упорством носорога передает RGB вместо GRB ....

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

3 часа назад, dodik сказал:

 В даташите на светодиод на 5 стр.  есть    "ret code"  . Возврат от последнего светодиода линейки к первому , епп  . Может причина в несоблюдении  ?   

WS2812B.pdf 420 кБ · 3 загрузки

Вы мне про WS2812B, а я Вам про что?

3 часа назад, IMXO сказал:

Ну это вы привели свой код в соответствие с ДШ, а ТС с упорством носорога передает RGB вместо GRB ....

Откуда Вы всё это берёте? В Datasheet'е чёрным по-белому написано:

Цитата

Composition of 24bit data:

R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0

Note: Data transmit in order of RGB, high bit data is firs

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

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

а если после белого цвета переходить не сразу на чёрный, а на какой нибудь цветной ? ещё попробовать не чисто белый, а на единицу изменить один из цветов ? 

ну и процедуры set() и send() можно объединить, использовать _delay_ms() из  #include <util/delay.h>, чтобы код более читабельным стал.

 

пропустил несколько серий в этом сезоне, В0 и В1 это отправка нулевого и единичного бита в порт ? 

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

Пробовал не ставить чёрный. Тут дело именно в белом. Я разные комбинации пробовал. Про изменить на единицы я думал, но, это уже как костыль. Мне же интересно что не так сейчас. Да про то, как написан код - это не нужно обращать внимание. Это я его для Вас накидал. У меня же весь код чисто на ассемблере. Скажем так, вырвал кусок из ассемблерного кода и переписал его на C чтобы для наглядности. Да, B0 и B1 - это отправка битов. Но не в порт, а именно на микросхему как сигнал.

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

почему биты разной толщины ?

 

если на Си грамотно писать код,  то по объему он превысит ассемблерный на 20%. а ваша делэй занимает место в памяти МК.

11 минут назад, dubrovkin сказал:

Это я его для Вас накидал.

в этом коде комменты мусорные и табуляции просто так не накидать ИМХО

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

Биты разной толщины, вот почему. В datasheet есть такая информация:

image.png.fde41674a53c022ae0fae2b0a2799aca.png

Интервалы для T0H, T0L, T1H и T1L там тоже есть:

image.png.b03a3551ebea36399353df2fcdfc87fd.png

Частота микроконтроллера у меня 9.6 МГц. В общем, чтобы вписаться, я рассчитал сколько можно потратить тактов:

image.png.574c6314ba7561762435348998d19761.png

Выходит, чтобы передать бит 0, мне нужно включить HIGH на 3 тика, затем 6 тиков чтобы было LOW. Чтобы передать 1, нужно наоборот.

Да я знаю как писать код. Дело не в том что у меня там delay и всё такое. Для простоты можно было бы и взять delay из avr/delay.h (или куда они там её сейчас перенесли). Я тупо скопировал эту функция в таком виде, в каком она у меня на ассемблере реализована. 

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

Это такой троллинг? Спрашивать про баги программы, а подсовывать для нас накиданную лабуду? В чем наглядность? Неужели Вы думаете, что парни в Ассме не разберутся? Петляете как заяц!

Ваша переписанная лабуда работает так:

555.jpg.f786f857b0747b1885d67016464bfc6b.jpg

Очень похоже на примеры из даташита? Сигнал RET Вы вообще не формируете?

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

1 минуту назад, Геннадий сказал:

Сигнал RET

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

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

А какая разница на каком языке код? Да, оригинальный мой код написан на ассемблере. Я воспроизвёл алгоритм на C и результат такой же как и на ассемблере. И дело тут не в том что кто-то не разберётся, мне самому хотелось реализовать это на C. Так проще. С чего Вы взяли что сигнала RET нет? У меня между отправками цвета проходит времени гораздо больше, чем 280 мкс.

После передачи HIGH, я передаю LOW. Как мне тут же описали, мне потом не нужно снова передавать HIGH и снова LOW уже длиной более 280 мкс.

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

delay.h

Skip to content
Product
Solutions
Open Source
Pricing
Search
Sign in
Sign up
johnmccombs
/
arduino-libraries
Public
Code
Issues
2
Pull requests
1
Actions
Projects
Wiki
Security
Insights
arduino-libraries/glcd/include/delay.h
@sulsadev
sulsadev - initial commit
Latest commit d1d6686 on Jun 7, 2011
 History
 1 contributor
Executable File  256 lines (229 sloc)  9.72 KB
 

/*
 *  delay.h
 *
 *  Provides accurate delays for a given number of nanoseconds
 *  This version is part of the Arduino GLCD library.
 *
 *  This file is based on code by Copyright Hans-Juergen Heinrichs (c) 2005
 *
 *  the following comment is from his file
 *  The idea for the functions below was heavily inspired by the
 *  file <avr/delay.h> which is part of the excellent WinAVR
 *  distribution. Therefore, thanks to Marek Michalkiewicz and
 *  Joerg Wunsch.
 *
 *  The idea is to have the GCC preprocessor handle all calculations
 *  necessary for determining the exact implementation of a delay
 *  algorithm. The implementation itself is then inlined into the
 *  user code.
 *  In this way it is possible to always get the code size optimized
 *  delay implementation.
 *
 */
 
 /*
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.
*/


#ifndef _ARDUINO_DELAY_H_
#define _ARDUINO_DELAY_H_

#include <inttypes.h>

#ifndef F_CPU
# warning "Macro F_CPU must be defined"
#endif

/*
 * Forward declaration for all functions with attribute
 * 'always_inline' enforces GCC to inline the code (even
 * if it would be better not to do so from optimization
 * perspective).
 * Without this attribute GCC is free to implement
 * inline code or not (using the keyword 'inline'
 * alone is not sufficient).
 *
 */
static __inline__ void _NOP1( void) __attribute__((always_inline));
static __inline__ void _NOP2( void) __attribute__((always_inline));
static __inline__ void _NOP3( void) __attribute__((always_inline));
static __inline__ void _NOP4( void) __attribute__((always_inline));
static __inline__ void _NOP5( void) __attribute__((always_inline));
static __inline__ void _NOP6( void) __attribute__((always_inline));
static __inline__ void _NOP7( void) __attribute__((always_inline));
static __inline__ void _NOP8( void) __attribute__((always_inline));
static __inline__ void _NOP9( void) __attribute__((always_inline));
static __inline__ void _NOP10(void) __attribute__((always_inline));
static __inline__ void _NOP11(void) __attribute__((always_inline));
static __inline__ void _NOP12(void) __attribute__((always_inline));

static __inline__ void _delay_loop_3(  uint32_t) __attribute__((always_inline));
static __inline__ void _delay_loop_1_x( uint8_t) __attribute__((always_inline));
static __inline__ void _delay_loop_2_x(uint16_t) __attribute__((always_inline));
static __inline__ void _delay_loop_3_x(uint32_t) __attribute__((always_inline));

static __inline__ void _delay_cycles(const double) __attribute__((always_inline));


/*
 * _ N O P x ( void )
 *
 * Code sized optimized NOPs - not using any registers
 *
 * These NOPs will be used for very short delays where
 * it is more code efficient than executing loops.
 *
 */
static __inline__ void _NOP1 (void) { __asm__ volatile ( "nop    " "\n\t" ); }
static __inline__ void _NOP2 (void) { __asm__ volatile ( "rjmp 1f" "\n\t"  "1:" "\n\t" ); }
static __inline__ void _NOP3 (void) { __asm__ volatile ( "lpm    " "\n\t" ); }
static __inline__ void _NOP4 (void) { _NOP3(); _NOP1(); }
static __inline__ void _NOP5 (void) { _NOP3(); _NOP2(); }
static __inline__ void _NOP6 (void) { _NOP3(); _NOP3(); }
static __inline__ void _NOP7 (void) { _NOP3(); _NOP3(); _NOP1(); }
static __inline__ void _NOP8 (void) { _NOP3(); _NOP3(); _NOP2(); }
static __inline__ void _NOP9 (void) { _NOP3(); _NOP3(); _NOP3(); }
static __inline__ void _NOP10(void) { _NOP3(); _NOP3(); _NOP3(); _NOP1(); }
static __inline__ void _NOP11(void) { _NOP3(); _NOP3(); _NOP3(); _NOP2(); }
static __inline__ void _NOP12(void) { _NOP3(); _NOP3(); _NOP3(); _NOP3(); }



/*
 *  _ d e l a y _ l o o p _ 3( uint32_t __count )
 *
 * This delay loop is not used in the code below: It is
 * a supplement to the _delay_loop_1() and _delay_loop_2()
 * within standard WinAVR <arv/delay.h> giving a wider
 * (32 bit) delay range.
 *
 */
static __inline__ void
_delay_loop_3( uint32_t __count )
{
    __asm__ volatile (
        "1: sbiw %A0,1" "\n\t"
        "sbc %C0,__zero_reg__" "\n\t"
        "sbc %D0,__zero_reg__" "\n\t"
        "brne 1b"
        : "=w" (__count)
        : "0" (__count)
    );
}


/*
 *  _ d e l a y _ l o o p _ 1 _ x( uint8_t __count )
 *  _ d e l a y _ l o o p _ 2 _ x( uint16_t  __count )
 *  _ d e l a y _ l o o p _ 4 _ x( uint32_t __count )
 *
 *  These delay loops always have exactly 4(8) cycles per loop.
 *  They use a 8/16/32 bit register counter respectively.
 *
 */
static __inline__ void      /* exactly 4 cycles/loop, max 2**8 loops */
_delay_loop_1_x( uint8_t __n )
{                                               /* cycles per loop      */
    __asm__ volatile (                          /* __n..one        zero */
        "1: dec  %0"   "\n\t"                   /*    1             1   */
        "   breq 2f"   "\n\t"                   /*    1             2   */
        "2: brne 1b"   "\n\t"                   /*    2             1   */
        : "=r" (__n)                            /*  -----         ----- */
        : "0" (__n)                             /*    4             4   */
    );
}

static __inline__ void      /* exactly 4 cycles/loop, max 2**16 loops */
_delay_loop_2_x( uint16_t __n )
{                                               /* cycles per loop      */
    __asm__ volatile (                          /* __n..one        zero */
        "1: sbiw %0,1"   "\n\t"                 /*    2             2   */
        "   brne 1b  "   "\n\t"                 /*    2             1   */
        "   nop      "   "\n\t"                 /*                  1   */
        : "=w" (__n)                            /*  -----         ----- */
        : "0" (__n)                             /*    4             4   */
    );
}

static __inline__ void      /* exactly 8 cycles/loop, max 2**32 loops */
_delay_loop_3_x( uint32_t __n )
{                                               /* cycles per loop      */
    __asm__ volatile (                          /* __n..one        zero */
        "1: sbiw %A0,1           "  "\n\t"      /*    2             2   */
        "   sbc  %C0,__zero_reg__"  "\n\t"      /*    1             1   */
        "   sbc  %D0,__zero_reg__"  "\n\t"      /*    1             1   */
        "   nop                  "  "\n\t"      /*    1             1   */
        "   breq 2f              "  "\n\t"      /*    1             2   */
        "2: brne 1b              "  "\n\t"      /*    2             1   */
        : "=w" (__n)                            /*  -----         ----- */
        : "0" (__n)                             /*    8             8   */
    );
}


/*
 *
 *  _ d e l a y _ c y c l e s (double __ticks_d)
 *
 *  Perform an accurate delay of a given number of processor cycles.
 *
 *  All the floating point arithmetic will be handled by the
 *  GCC Preprocessor and no floating point code will be generated.
 *  Allthough the parameter __ticks_d is of type 'double' this
 *  function can be called with any constant integer value, too.
 *  GCC will handle the casting appropriately.
 *
 *  With an 8 MHz clock e.g., delays ranging from 125 nanoseconds
 *  up to (2**32-1) * 125ns ~= 536,87 seconds are feasible.
 *
 */
static __inline__ void
_delay_cycles(const double __ticks_d)
{
    uint32_t __ticks = (uint32_t)(__ticks_d);
    uint32_t __padding;
    uint32_t __loops;

    /*
     * Special optimization for very
     * small delays - not using any register.
     */
    if( __ticks <= 12 )  {              /* this can be done with 4 opcodes      */
        __padding = __ticks;

    /* create a single byte counter */
    } else if( __ticks <= 0x400 )  {
        __ticks -= 1;                   /* caller needs 1 cycle to init counter */
        __loops = __ticks / 4;
        __padding = __ticks % 4;
        if( __loops != 0 )
            _delay_loop_1_x( (uint8_t)__loops );

    /* create a two byte counter */
    } else if( __ticks <= 0x40001 )  {
        __ticks -= 2;                   /* caller needs 2 cycles to init counter */
        __loops = __ticks / 4;
        __padding = __ticks % 4;
        if( __loops != 0 )
            _delay_loop_2_x( (uint16_t)__loops );

    /* create a four byte counter */
    } else  {
        __ticks -= 4;                   /* caller needs 4 cycles to init counter */
        __loops = __ticks / 8;
        __padding = __ticks % 8;
        if( __loops != 0 )
            _delay_loop_3_x( (uint32_t)__loops );
    }

    if( __padding ==  1 )  _NOP1();
    if( __padding ==  2 )  _NOP2();
    if( __padding ==  3 )  _NOP3();
    if( __padding ==  4 )  _NOP4();
    if( __padding ==  5 )  _NOP5();
    if( __padding ==  6 )  _NOP6();
    if( __padding ==  7 )  _NOP7();
    if( __padding ==  8 )  _NOP8();
    if( __padding ==  9 )  _NOP9();
    if( __padding == 10 ) _NOP10();
    if( __padding == 11 ) _NOP11();
    if( __padding == 12 ) _NOP12();
}


/*
 *   _ d e l a y _ n s (double __ns)
 *   _ d e l a y _ u s (double __us)
 *
 *   Perform a very exact delay with a resolution as accurate as a
 *   single CPU clock (the macro F_CPU is supposed to be defined to a
 *   constant defining the CPU clock frequency in Hertz).
 *
 */
#define _delayNanoseconds(__ns)     _delay_cycles( (double)(F_CPU)*((double)__ns)/1.0e9 + 0.5 )

#endif /* _ARDUINO_DELAY_H_ */
Footer
© 2023 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact GitHub
Pricing
API
Training
Blog
About

 

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

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

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

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

значит или в расчёты закралась ошибка, или в реализации светодиодов. Посылать на светодиоды трёхцветные сигналы с разным заполнением битами.

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

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

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

О, как раз Paint пригодился) Питание от лабораторного источника питания. Выставлено 5 В. Максимальный ток в 200 мА.

image.png.855294ca8990c9e07d42ad81b88d1120.png

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Геннадий сказал:

работает так

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

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

2 минуты назад, dubrovkin сказал:

R,G,B-1 и R,G,B+1 - нормально

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

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

Что значит светодиоды кривят? Как они будут гореть, это же зависит от того, через какие ножки пойдёт ток. Значит так WS2818B сигналами оперирует, что они так горят. У меня было так, что я передавал цвета радуги, а дойдя жо белого, у меня вдруг слишком ярко загорелся, скажем, какой-нибудь голубой. Не понимаю такого поведения. Вообще, я думал что во всех этих WS28xx всё работает через старый добрый ШИМ. Но был удивлён, когда увидел что на выходных контактах идёт изменение по току.

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

Спойлер

Первые мои тесты с этой микросхемой были на Arduino UNO R3 и библиотеку microLED. Как же не хочется опять всё это доставать и слать через неё белый (я просто не помню слал ли я его). С другой стороны, даже если и слал и было нормально, где гарантия что они в коде там это дело не подменяют чтобы работало нормально.

 

Изменено пользователем dubrovkin
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • В данном примере- конечно нет! Упор на ПЛАЗЬМУ!   Кондей брал типа МБГО (такой бурого цвета квадратик со стеклянными выводами). Думается, что если усложнить схему т.е. сделать хотьбы 5сек на разогрев спиральки Л. то она хлопнет не за 3 месяца , а подольше ...а вообще - дела "каменного века" ...наф-наф!  ;-)  , а схемка задержки уже в выключатель не влезет... В моей практике были вызовы по отключению вааще энергии в квартире ...как оказывалось  - КЗ от плазьмы вышибало центральный автомат , а хозяин , с перепугу от хлопка , больше не желал даже подойти к распред/щиту  ;-)    Увы - это основная ошибка гуру .  В однородном МП ЭДС не наводится!  Я с таким эффектом сталкивался когда сделал попытки с определением однородности материала магнита ....однородности -НИКАКОЙ ! У некоторых экземпляров неоднородность достигает до 50% !  А вот в учебниках об этом даже не заикаются  ...а теория - она без практики-ничто! ;-)  На фото : сьём ЭДС с полюса магнита индукционной катушкой . Такой сьём позволяет как бы "усилить" регистрацию эффекта и избежать шума от токосьёмов...
    • @Владислав2 Вы разницу между газоразрядными и вакуумно-люминесцентными индикаторами понимаете? Какой накал у ГРИ? У ТС ИН-14, в которых из за повышенного напряжения преобразователя 5>170 (как уже писАл@oleg_s ) пары ртути начинают светиться. У меня такое на некоторых ИН-18 наблюдалось (с шарами), но там не исправить. Насколько помню данные часы у китайцев на статике работают, в теории ток сегментов замерить можно. Ну и соответственно уменьшать выходное напряжение DC-DC преобразователя, предварительно срисовав схему, там, правда плохо видно, трансформатор установлен. Либо в анодах ламп повышать сопротивления токоограничевающих резисторов на 1 выводе ИН-14. Еще как вариант, собрать свой преобразователь на MC34063 или МАХ1771 и выкинув штатный отрегулировать выходное напряжение, правда некоторые экземпляры MC от 5в не стабильно заводятся.
    • Да и у меня почти такая, только класс D мой организм не воспринимает. 
    • В очках +3 пару лет назад спаял шарик с HX4002 и 3-мя кондёрчиками...
    • Виновато устройство. Смотреть схему, питание. Пробовать включить устройство на другом компьютере
×
×
  • Создать...