транзисторы

125310, Москва, ст.м. Сходненская, район Митино, Пятницкое шоссе, влад. 16-18, МИТИНСКИЙ РАДИОРЫНОК, пав 15-6

2Т301Е

2Т301Е

Описание и параметры

Структура 2Т301Е

Структура: NPN

Корпус

Корпус: KT-1-7

Цена 2Т301Е

купить 2Т301Е можно по цене 13.5

Сообщение с конференции

Разрабатываю устройство на AVR, которое при помощи аппаратных ШИМ управляет нагрузкой.
Значения ШИМ принимаются по USART, интерфейс RS 232.Передавются пакеты по 8 байт. Первые три байта значения трех ШИМ соответственно,
как правильно считывать номера принятых байт.есть подозрение, что непрaвильно расположена переменная счета принятых байт.
Вот кусок программы на CodeVisionAVR:

unsigned int schet_ad; //СЧЕТЧИК ПРИНЯТЫХ АДРЕСОВ

// USART Receiver buffer
#define RX_BUFFER_SIZE 8 //величина буфера
// остановился здесь
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
//*************
schet_ad ++; //СЧЕТЧИК АДРЕСОВ
//**************
if ((status & (FRAMING_ERROR | PARITY_ERROR | D?4??4??1?_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;

};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE)
rx_rd_index=0;

#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
------------------------

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud rate: 115200 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x08;
----------------------------
while (1)
{
while (schet_bayt != schet_ad ) //СРАВНЕНИЕ СКОЛЬКО ДЛИТСЯ ПАКЕТ
{
if (schet_ad == 1) //ВЫДЕЛЕНИЕ АДРЕСА 1
{
pwm1 = getchar();
OCR2 = pwm1; //шим
};//ДЛЯ if (schet_ad == 1)

if (schet_ad == 2) //ВЫДЕЛЕНИЕ АДРЕСА 2
{
pwm2 = getchar();
OCR1A = pwm2; //шим
};//ДЛЯ if (schet_ad == 2)
if (schet_ad == 3) //ВЫДЕЛЕНИЕ АДРЕСА 3
{
flag1 = 1; //УСТАНОВКА ФЛАГА-КОНЕЦ СЧЕТА НУЖНЫХ АДРЕСОВ
pwm3 = getchar();
OCR1B = pwm3; //ТАИМЕР 1
flag1 = 1; //УСТАНОВКА ФЛАГА-КОНЕЦ СЧЕТА НУЖНЫХ АДРЕСОВ
};//ДЛЯ if (schet_ad == 3)
}; //ДЛЯ while (schet_ad <= schet_bayt-1)

if (flag1 == 1) //ОБРАБОТКА ВСПОМОГАТЕЛЬНОГО ФЛАГА
{
schet_ad = 0; //ОБНУЛЕНИЕ СЧЕТЧИКА АДРЕСОВ
flag1 = 0; //установка флага в0
}//ДЛЯ if (flag1 == 1)
};//ДЛЯ while (1) , 2тс613а, цоколевка кт826в, 2Т630А транзистор корпус