dvm11111111
Участник-
Постов
33 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о dvm11111111
-
Звание
Участник
-
USB в AVR
dvm11111111 ответил A_MIKE тема в AVR
А если использовать USB HID то драйвера вообше не нужны никакие. Vid pid можно взять из поэктов, есть выкупленные и в свободный доступ выложенные, работа через репорты не очень сложна. Поищи проэкт в нете usb розетка для ноутбука еазывается, там авольно все разжевано и понятно. -
Да обсолютно на новую машину ставлю, и такая же песня, тоесть дрова не причем. TeslLibUSB выдает следующее: DLL version: 0.1.12.1 Driver version: 0.1.12.1 bus/device idVendor/idProduct bus-0/\\.\libusb0-0001--0x16c0-0x05dc 16C0/05DC - Manufacturer : www.fischl.de - Product : USBasp wTotalLength: 18 bNumInterfaces: 1 bConfigurationValue: 1 iConfiguration: 0 bmAttributes: 80h MaxPower: 25 bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 0 bInterfaceClass: 0 bInterfaceSubClass: 0 bInterfaceProtocol: 0 iInterface: 0 люди посмотрите у себя, мож у меня че не так? Сравните плз.
-
ZIF AVR + 3 в одном (USB ASP, AVRDOPER, PROTTOSS)
dvm11111111 опубликовал тема в AVR
Доброго времени суток ))). Собрал программатор этот, отличная вещь , была ))), Случилась непонятное, отказывается работать как usbasp, тоесть в винде видится, программы его тоже видят, а микрухи шить не хочет. Как AVR910 или STK500 работает отлично. Зашил другой контроллер, таже песня, на втором компе такая же ерунда. Куда копать даже не представляю. Мож кто сталкивался с подобной проблемой??? -
На Википедии попадались алгоритмы шифрования причем заточенные именно по 8-бит контроллеры.
-
проблемы с usbasp
dvm11111111 ответил gruffi тема в AVR
Ну вопервых залил бы в контроллер бутлоадер, например bootloadHID.2010-07-29 или avrusbboot20061113. тогда шить сам программатор можно будет напрямик через ЮСБУ. Во вторых, проверь D- куда у тебя подключен есть 2 варианта схем, с подключением либо к PD0 либо к PD3. если есть исходник поправь в usbconfig.h строку #define USB_CFG_DMINUS_BIT указав номер ноги куда у тебя D- подключен. ну и make clean, make all соответственно выполнить. фуссы тогда достаточно один раз выставить и забыть про них. Удачи разбирайся. -
Алгоритм шифрования для AVR
dvm11111111 ответил Артём__ тема в AVR
Посмотрите на алгоритмы RC5(именно алгоритм шифрования а не код с пульта ) и RC6 или подобные, они под 8 битные контроллеры заточены. Места не много занимают, правда криптозащищенность похуже чем у 3DES/ -
NEC IR Decoder
dvm11111111 ответил dvm11111111 тема в AVR
Заработало. Судя по всему проблемы были при записи в епром. поубирал их и вуаля. Держите исходник кому надо. m88.rar -
NEC IR Decoder
dvm11111111 ответил dvm11111111 тема в AVR
Это я уже видел. Только вот есть одна загвоздка мне таймер1 понадобиться в дальнейшем. а с таймером 0 этот способ не прокатит. #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> volatile int Tik; volatile char Byt; //'counter accepted bit volatile char Repeat_flag, Recive_flag; //'flag of repetition volatile char Start_flag; //'flag of start condition volatile char Address; //'byte of address volatile char Address_1; //'direct byte of address volatile char Command; volatile char Command_1; //'direct byte of command volatile char Address_0; //'indirect byte of address volatile char Command_0; //'indirect byte of command // volatile int Summa; // External Interrupt 0 service routine SIGNAL (SIG_INTERRUPT0) { TCNT0 = 253; TCCR0B=4; if (Tik >= 130 && Tik < 150){ //if has happenned from 139 before 150 teaks - "START" Repeat_flag = 0; Recive_flag = 0; Start_flag = 1; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Byt=0; } if (Tik >= 100 && Tik < 130) { //'if has happenned from 116 before 138 teaks - "REPETITION" Repeat_flag = 1; Start_flag = 0; Recive_flag = 0; } if (Tik >= 19 && Tik < 30 && Start_flag == 1) {// 'if has happenned from 22 before 115 teaks - have taken "1" Byt=Byt+1; if (Byt < 9){ Address_1<<=1; Address_1|=1; } if (Byt >= 9 && Byt < 17){ Address_0<<=1;Address_0|=1; } if (Byt >= 17 && Byt < 25){ Command_1<<=1;Command_1|=1; } if (Byt >= 25){Command_0<<=1; Command_0|=1;} } if ( Tik >= 1 && Tik < 19 && Start_flag == 1){ //'if has happenned from 10 before 21 teaks - have taken "0" Byt=Byt+1; if ( Byt < 9) Address_1<<=1; if ( Byt >= 9 && Byt < 17) Address_0<<=1; if (Byt >= 17 && Byt < 25) Command_1<<=1; if (Byt >= 25) Command_0<<=1; } if (Byt == 32){ Address = Address_1; Command = Command_1; Repeat_flag = 0; Start_flag = 0; Recive_flag = 1; TCNT0 = 253; TCCR0B=0; Byt=0; } Tik = 0; } // Timer 0 overflow interrupt service routine SIGNAL (SIG_OVERFLOW0) { TCNT0 = 253; // 31250/(256-253)=10416,66 Hz (96 een) Tik=Tik+1; if(Tik >= 1200){ //'if 1200 teaks, have thrown all in source condition Tik = 0; Repeat_flag = 0; Start_flag = 0; Recive_flag = 0; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Address = 0; Command = 0; // PORTB=0; Byt = 0; TCNT0 = 253; TCCR0B=0; //stop timer } } // Declare your global variables here int main(void) { // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0; DDRB=0x03; // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x04; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 31,250 kHz // Mode: Normal top=0xFF // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x04; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2A output: Disconnected // OC2B output: Disconnected ASSR=0x00; TCCR2A=0x00; TCCR2B=0x00; TCNT2=0x00; OCR2A=0x00; OCR2B=0x00; // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=0x02; EIMSK=0x01; EIFR=0x01; PCICR=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x01; // Timer/Counter 1 Interrupt(s) initialization TIMSK1=0x00; // Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00; // USART initialization // USART disabled UCSR0B=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; ADCSRB=0x00; DIDR1=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts //PORTB=1; TCCR0B=0; TCNT0 = 253; for(Byt=0;Byt<4;Byt++){ if(PORTB==0) PORTB=1; else PORTB=0; _delay_ms(500); } Byt=0; sei(); while (1) { /* if(Recive_flag == 1) { PORTB=1; _delay_ms(500); PORTB=0;Repeat_flag } */ if( Recive_flag == 1){ PORTB=1; _delay_ms(100); PORTB=0; _delay_ms(100); PORTB=1; _delay_ms(100); PORTB=0; Repeat_flag =0; eeprom_write_byte(5,Address); eeprom_write_byte(7,Command); eeprom_write_byte(6,Address_0); eeprom_write_byte(8,Command_0); } } } Ну в общем вот. Заработало только кривоватенько пока. Репит срабатывает, но только при первом нажатии кнопки адрес и команда =0. при повторном нажатии все норм получается и так при нажатии на любую кнопку. ППЦ с RC-5 както проще было ))) первый же пример заработал. Гуру ну ткните носом че за трабла. -
NEC IR Decoder
dvm11111111 ответил dvm11111111 тема в AVR
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> volatile int Tik; volatile char Byt; //'counter accepted bit volatile char Repeat_flag, Recive_flag; //'flag of repetition volatile char Start_flag; //'flag of start condition volatile char Address; //'byte of address volatile char Address_1; //'direct byte of address volatile char Command; volatile char Command_1; //'direct byte of command volatile char Address_0; //'indirect byte of address volatile char Command_0; //'indirect byte of command // volatile int Summa; // External Interrupt 0 service routine SIGNAL (SIG_INTERRUPT0) { //TCNT0 = 253; TCCR0B=4; if (Tik >= 125 && Tik < 150){ //if has happenned from 139 before 150 teaks - "START" eeprom_write_byte(0,Tik); Address = 1; Repeat_flag = 0; Recive_flag = 0; Start_flag = 1; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Byt=0; } if (Tik >= 100 && Tik < 125) { //'if has happenned from 116 before 138 teaks - "REPETITION" eeprom_write_byte(1,Tik); Address = 2; Repeat_flag = 1; Start_flag = 0; Recive_flag = 0; } if (Tik >= 15 && Tik < 30 && Start_flag == 1) {// 'if has happenned from 22 before 115 teaks - have taken "1" eeprom_write_byte(2,Tik); Byt=Byt+1; if (Byt < 9){ Address_1<<=1; Address_1|=1; } if (Byt >= 9 && Byt < 17){ Address_0<<=1;Address_0|=1; } if (Byt >= 17 && Byt < 25){ Command_1<<=1;Command_1|=1; } if (Byt >= 25){Command_0<<=1; Command_0|=1;} } if ( Tik >= 1 && Tik < 15 && Start_flag == 1){ //'if has happenned from 10 before 21 teaks - have taken "0" eeprom_write_byte(3,Tik); Byt=Byt+1; if ( Byt < 9) Address_1<<=1; if ( Byt >= 9 && Byt < 17) Address_0<<=1; if (Byt >= 17 && Byt < 25) Command_1<<=1; if (Byt >= 25) Command_0<<=1; } if (Byt == 31){ Address = Address_1; Command = Command_1; Repeat_flag = 0; Start_flag = 0; Recive_flag = 1; TCCR0B=0; Byt=0; PORTB=1; } Tik = 0; } // Timer 0 overflow interrupt service routine SIGNAL (SIG_OVERFLOW0) { TCNT0 = 253; // 31250/(256-253)=10416,66 Hz (96 een) Tik=Tik+1; if(Tik >= 1200){ //'if 1200 teaks, have thrown all in source condition Tik = 0; Repeat_flag = 0; Start_flag = 0; Recive_flag = 0; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Address = 0; Command = 0; PORTB=0; Byt = 0; TCCR0B=0; //stop timer } } // Declare your global variables here int main(void) { // Declare your local variables here #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0; DDRB=0x03; // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x04; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 31,250 kHz // Mode: Normal top=0xFF // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x04; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2A output: Disconnected // OC2B output: Disconnected ASSR=0x00; TCCR2A=0x00; TCCR2B=0x00; TCNT2=0x00; OCR2A=0x00; OCR2B=0x00; // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=0x02; EIMSK=0x01; EIFR=0x01; PCICR=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x01; // Timer/Counter 1 Interrupt(s) initialization TIMSK1=0x00; // Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00; // USART initialization // USART disabled UCSR0B=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; ADCSRB=0x00; DIDR1=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts //PORTB=1; TCCR0B=0; TCNT0 = 253; for(Byt=0;Byt<4;Byt++){ if(PORTB==0) PORTB=1; else PORTB=0; _delay_ms(500); } Byt=0; sei(); while (1) { if(Recive_flag == 1) { PORTB=1; _delay_ms(500); PORTB=0; } /* if(Repeat_flag == 1){ PORTB=1; _delay_ms(100); PORTB=0; _delay_ms(100); PORTB=1; _delay_ms(100); PORTB=0; Repeat_flag =0; eeprom_write_byte(5,Address); eeprom_write_byte(7,Command); eeprom_write_byte(6,Address_0); eeprom_write_byte(8,Command_0); } */ } } Вот воткнул запись временных интервалов, значения получаются такие 0x8C 0x75 0x11 0x06. По интервалам в роди все должно проходить. Повтор нажатия срабатывает нормально, а вот прием данных ну ни как работать не хочет. Такое впечатление что Bit не увеличивается. Прерывания все нормально работают проверял тестами. -
NEC IR Decoder
dvm11111111 опубликовал тема в AVR
Доброго всем времени суток. Вот решил пульт с кодировкой NEC прикрутить к 88 меге. Первоисходник http://www.mcselec.com/index.php?option=co...3&Itemid=57 на BASCOM. Переделал под WINAVR, НО ВОТ РАБОТАЕТ ЭТО ВСЕ КАК-ТО НЕПОНЯТНО. Исходник прилагаю мега работает от внутреннего 8МГц, приемник на INT0, светодиод на POTB.1. ГУРУ посмотрите что не так на первый взгляд. #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> volatile int Tik; volatile char Byt; //'counter accepted bit volatile char Repeat_flag, Recive_flag; //'flag of repetition volatile char Start_flag; //'flag of start condition volatile char Address; //'byte of address volatile char Address_1; //'direct byte of address volatile char Command; volatile char Command_1; //'direct byte of command volatile char Address_0; //'indirect byte of address volatile char Command_0; //'indirect byte of command // volatile int Summa; // External Interrupt 0 service routine SIGNAL (SIG_INTERRUPT0) { TCNT0 = 253; TCCR0B=4; if (Tik >= 125 && Tik < 150){ //if has happenned from 139 before 150 teaks - "START" eeprom_write_byte(10,Tik); Address = 1; Repeat_flag = 0; Recive_flag = 0; Start_flag = 1; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Byt=0; } if (Tik >= 100 && Tik < 125) { //'if has happenned from 116 before 138 teaks - "REPETITION" eeprom_write_byte(11,Tik); Address = 2; Repeat_flag = 1; Start_flag = 0; Recive_flag = 0; } if (Tik >= 15 && Tik < 30 && Start_flag == 1) {// 'if has happenned from 22 before 115 teaks - have taken "1" eeprom_write_byte(12,Tik); Byt=Byt+1; if ( Byt < 9){ Address_1<<=1; Address_1|=1; } if ( Byt >= 9 && Byt < 17){ Address_0<<=1;Address_0|=1; } if (Byt >= 17 && Byt < 25){ Command_1<<=1;Command_1|=1; } if (Byt >= 25){Command_0<<=1; Command_0|=1;} } if ( Tik >= 5 && Tik < 15 && Start_flag == 1){ //'if has happenned from 10 before 21 teaks - have taken "0" eeprom_write_byte(13,Tik); Byt=Byt+1; if ( Byt < 9) Address_1<<=1; if ( Byt >= 9 && Byt < 17) Address_0<<=1; if (Byt >= 17 && Byt < 25) Command_1<<=1; if (Byt >= 25) Command_0<<=1; } if (Byt == 32){ Address = Address_1; Command = Command_1; Repeat_flag = 0; Start_flag = 0; Recive_flag = 1; TCCR0B=0; Byt=0; } Tik = 0; } // Timer 0 overflow interrupt service routine SIGNAL (SIG_OVERFLOW0) { TCNT0 = 253; // 31250/(256-253)=10416,66 Hz (96 een) Tik=Tik+1; if(Tik >= 1200){ //'if 1200 teaks, have thrown all in source condition Tik = 0; Repeat_flag = 0; Start_flag = 0; Recive_flag = 0; Address_1 = 0; Command_1 = 0; Address_0 = 0; Command_0 = 0; Address = 0; Command = 0; PORTB=0; Byt = 0; TCCR0B=0; //stop timer } } // Declare your global variables here int main(void) { // Declare your local variables here #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x07; // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x04; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 31,250 kHz // Mode: Normal top=0xFF // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x04; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2A output: Disconnected // OC2B output: Disconnected ASSR=0x00; TCCR2A=0x00; TCCR2B=0x00; TCNT2=0x00; OCR2A=0x00; OCR2B=0x00; // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=0x02; EIMSK=0x01; EIFR=0x01; PCICR=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x01; // Timer/Counter 1 Interrupt(s) initialization TIMSK1=0x00; // Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00; // USART initialization // USART disabled UCSR0B=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; ADCSRB=0x00; DIDR1=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts //PORTB=1; TCCR0B=0; TCNT0 = 253; /* PORTB=1; _delay_ms(500); PORTB=0; _delay_ms(500); PORTB=1; _delay_ms(500); PORTB=0; */ sei(); Byt=0; while (1) { if(Recive_flag == 1) { PORTB=1; _delay_ms(500); PORTB=0; } /* if(Repeat_flag == 1){ PORTB=1; _delay_ms(100); PORTB=0; _delay_ms(100); PORTB=1; _delay_ms(100); PORTB=0; Repeat_flag =0; eeprom_write_byte(5,Address); eeprom_write_byte(7,Command); eeprom_write_byte(6,Address_0); eeprom_write_byte(8,Command_0); }*/ } } -
Передача температуры через СМС
dvm11111111 ответил idono тема в AVR
Ну тот же Siemens C35 за 300р как два пальца. Поддеоживаю, уровни сигналов надо согласовывать. Гляньте для начала тут. -
Передача температуры через СМС
dvm11111111 ответил idono тема в AVR
жт надо конкретно смотреть, хотя насколько я помню, должно поддерживаться, только вот насколько они дешевле и доступней старых телофонов, эт вопрос. -
Передача температуры через СМС
dvm11111111 ответил idono тема в AVR
Только есть одно маленькое НО, сейчас практически невозможно найти сотовый который бы поддерживал передучу СМС в текстовом режиме, хотя в AT командах на модели написано что поддерживают, в реалии это не работает. -
USART с Mega8 распознаётся не всеми Com портами(
dvm11111111 ответил SergM8 тема в AVR
Да малость погоричился, эт RS485,422 у них с гальваноразвязкой. -
USART с Mega8 распознаётся не всеми Com портами(
dvm11111111 ответил SergM8 тема в AVR
Вообщето в некоторых MAXах есть галваническая развязка до 15КВ. Но они дороже обычных. Да кстати посмотри напругу в точке соединения диода и резюка на светодиод, мож порты не тянут, просадка идет (как вариант вукинуть светодиод, поставить кондер электролит, параллельно резистор+светодиод).