|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 1:50 pm
PIC16F1829 IR приемник полудях
| Автор |
Съобщение |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12765 Местоположение: София
|
 Re: PIC16F1829 IR приемник полудях
|
| Пет Май 20, 2016 4:04 pm |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: PIC16F1829 IR приемник полудях
В SONY стандарта се чака безспир стартов импулс от 2.4 милисекунди. След това се чакат следващи 12 импулса, които могат да бъдат: фалшив - кратко смущение, елиминира се; единица - с продължителност 1.2 мс; нула - 0.6 мс.Импулсите са разделени с 0.6 мс паузи. Ако не се разбере кода,се чака за следващия сигнал. Идват през 45 мс, докато е натиснат бутона. Аз съм се ограничил до 8 импулса - стигат ми. Някои наричат тази машинария "дистанционно". На мен ми трябва за управление на нетелевизори.
_________________ Бай Цветан
|
| Пет Май 20, 2016 4:37 pm |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: PIC16F1829 IR приемник полудях
ПРОБА ЗА ФОРМАТИРАНЕ. НЕ ЧЕТИ ТОВАЗдравейДобро УтроТова е страхотно!Здрасти!МАЛЪКПОГЛЕДНИ МЕ!
_________________ Бай Цветан
|
| Пет Май 20, 2016 7:56 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: PIC16F1829 IR приемник полудях
Добре де, и какво стана в крайна сметка ? Според мен подкарай едно по едно нещата. Не се опитвай да запуснеш всикчо наведнъж.
|
| Пет Май 20, 2016 11:07 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: PIC16F1829 IR приемник полудях
@peast, колега, ще ме извиняваш ама какво значи ника ти? На ум ми идват изпуснати букви!
|
| Пет Май 20, 2016 11:43 pm |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: PIC16F1829 IR приемник полудях
_________________ Бай Цветан
|
| Съб Май 21, 2016 2:03 am |
|
 |
|
peast
Ранг: Минаващ
Регистриран на: Сря Юли 04, 2012 1:51 pm Мнения: 44 Местоположение: София
|
 Re: PIC16F1829 IR приемник полудях
 |  |  |  | Код: Това е работещата програма. Хардуерът е базовия за контролера, като на RB6 е включен стандартен инфрачервен сензор RPM7038 или 7040 - има ги в Комет винаги за стотинки. Осцилаторът е кварцов 4 Мх, мисля, че ставаше и с вътрешния. Предавателят е от туториала на Nigel Goodwin, като съм изрязал нещата за приемника и LSD дисплея. Там е и софтуера му.
/* * File: dcVel3.c * Author: tsetso * * Created on Maj 20, 2016, 1.40 PM */
#include "pic16f1829.h"
// CONFIG1 #pragma config FOSC = HS // Oscillator Selection (ECH, External Clock, High Power Mode (4-32 MHz): device clock supplied to CLKIN pin) #pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled) #pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR) #pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled) #pragma config CPD = OFF // Data Memory Code Protection (Data memory code protection is disabled) #pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled) #pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin) #pragma config IESO = ON // Internal/External Switchover (Internal/External Switchover mode is enabled) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) //#pragma config "DEBUG" = OFF // CONFIG2 #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) #pragma config PLLEN = OFF // PLL Enable (4x PLL enabled) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset) #pragma config BORV = HI // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) #pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)
#include <xc.h>
int err = 0, i, j, PulseLength = 0; unsigned int id_but = 0, test = 1, rez = 0;
void Init(void) { // OSCCON = PORTA = 0; PORTB = 0; PORTC = 0; LATA = 0; LATB = 0; LATC = 0; TRISA = 0; TRISB = 0b01000000; // Port B bit 6 is input TRISC = 0; ANSELA = 0; ANSELB = 0; ANSELC = 0; nWPUEN = 0; // Enabled Weak Pull Up's WPUA = 0; WPUB6 = 1; // TMR0CS = 0; //Timer choosed, not counter INTCON = 0; INTEDG = 1; //rising edge trigger the interrupt PSA = 0; // PRESCALER ASSIGNED TO TIMER0 PS2 = 0; PS1 = 1; // 1:16 PRESCALER RATE PS0 = 1; }
void Puls(void){ TMR0 = 0; while (!RB6) {} PulseLength = TMR0; while(RB6){} if ( PulseLength >45){ // 1 or 0? for (j=0; j <= i; j++)test = test*2; id_but = id_but | test; } }
void main() { Init(); while(1){ while (1) { PulseLength = 0; id_but = 0; test = 1; //StartPuls while (RB6) {} TMR0 = 0; while (!RB6) {} PulseLength = TMR0; while(RB6){} rez = 1; if(PulseLength <85) { //accidental rez = 0; continue; } if (rez == 1)break; } // If here, it is start pulse. Wait for the next pulse for (i = 1; i <9; i++){ Puls(); } switch (id_but){ case 32832: {LATC = 1; // button 1 break;} case 260: {LATC = 2; // button 2 break;} case 520: {LATC = 4; // button 3 break;} case 2084: {LATC = 8; // button 4 break;} } i = 0; } }
|  |  |  |  |
_________________ Бай Цветан
|
| Съб Май 21, 2016 5:51 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|