|
Прием данных на Атмеге, Как правильно это организовать |
|
|
|
Nov 19 2008, 09:26
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001

|
Здрастье, есть у меня такая проблема. Атмега, и приемник на 433Мгц ну от сигналки. Вот на ножку чипа приходит сигнал с приемника. Подскажите как выглядеть будет программа что бы просто записать принятые данные в виде единиц и нулей. Пакет приходит так: " Вся передача опирается на элемнтарный отрезок времени названный Те и равный обычно 400мкс. (документацией нормирован разброс от 280мкс до 620мкс). Итак передаваемый пакет: Он состоит из преамбулы (длиться 23Те, и нужна для того, чтоб оторвать приемник сиги от сладостного прослушивания помех), за ней следует заголовок пакета (header) – равен 10Те, и нужен для того чтоб проц в сиге смог определить длительность Те у принимаемого пакета данных… Затем идут собственно данные (66 бит или 198Те), и наконец Guard Time – время для того чтобы сига переварила принятое (39Те). Теперь о передаче данных.. бит передается за время равное 3Те.. В течении 1-го Те передается обязательно высокий уровень (красная часть), 2-е Те это собственно значение передаваемого бита (только инвертированное, те лог1 = низкий уровень, а лог0 соответственно = высокий уровень) – синяя часть.. И наконец в течении 3-го Те передается обязательный низкий уровень (зеленая часть).. " ВОТ! хочется попроще и оптимальный прием пакета
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jul 27 2009, 05:41
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001

|
Ребят вот я начал потихоньку тут понимать что происходит, в терминал при подаче пакета выводит значения таймера. Подскажите дальше как правильно обработать, думал вчера целый день не выходит  CODE #include <mega8.h> #include <stdio.h> unsigned long int i,; bit s=0; // External Interrupt 1 service routine interrupt [EXT_INT1] void ext_int1_isr(void) { // Place your code here // Place your code here
i = TCNT1; printf("I="); printf("%u",i); printf("\n\r"); }
// Declare your global variables here
void main(void) { // Declare your local variables here
// 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=0x00;
// 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=0x00; DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00; TCNT0=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 // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x03; 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: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off // INT1: On // INT1 Mode: Falling Edge GICR|=0x80; MCUCR=0x08; GIFR=0x80;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;
// Global enable interrupts #asm("sei")
while (1) { // Place your code here }; } Как кстати сделать что бы код в форуме не весь показывался а с прокруткой
|
|
|
|
Сообщений в этой теме
Vny4ek Прием данных на Атмеге Nov 19 2008, 09:26 Dog Pawlowa Цитата(Vny4ek @ Nov 19 2008, 13:26) Здрас... Nov 19 2008, 09:56 Vny4ek нет проблема не в этом. Хочется просто не догоню к... Nov 19 2008, 09:58 Dog Pawlowa Цитата(Vny4ek @ Nov 19 2008, 13:58) а для... Nov 19 2008, 10:08 Vny4ek ок, если можно по подробней с чего начать, програм... Nov 19 2008, 11:02 vvvvv Идея такая. Настраиваешь вход с радиоканала на пре... Nov 19 2008, 11:03 Vny4ek СПАСИБО большое! То что надо, я потихоньку нач... Nov 19 2008, 11:11 Vny4ek будьте добры ткните носом в апноут, желательно что... Nov 25 2008, 14:14 Vny4ek Уважаемые, подскажите, обязательно ли в данном при... Apr 28 2009, 13:55 SasaVitebsk А что тут непонятного?
Инициализация таймера напри... Apr 29 2009, 08:51 xemul Майкрочип описАл процесс приема Keeloq не в одном ... Apr 29 2009, 09:25 Vny4ek to:SasaVitebsk спасибо большое, я потихоньку начин... Apr 29 2009, 12:39 xemul Цитата(Vny4ek @ Apr 29 2009, 16:39) to:xe... Apr 29 2009, 14:59 Vny4ek Я уже не первый день не могу никак освоить эти тай... May 2 2009, 10:41 Vny4ek Ребят, ну подскажите пожалуйста. May 3 2009, 08:08 rezident Таймер не нужно запускать по перепаду. Таймер долж... May 3 2009, 11:27 Vny4ek А можно пример привести, для кодвижена, принцип я ... May 3 2009, 11:43 rezident Предлагаю сделать наоборот. Вы предоставляете свой... May 3 2009, 11:54 Vny4ek ок, я полностью с вами согласен.
у меня есть приме... May 3 2009, 16:42 rezident Не нужно обрывков. Приводите ваш пример программы ... May 3 2009, 21:38 Vny4ek Вот привожу пример кода, для приема. Насколько мне... May 4 2009, 04:57 Dog Pawlowa Цитата(Vny4ek @ May 4 2009, 07:57) Вот пр... May 4 2009, 09:05 Vny4ek не понятно мне следующее: как отследить изменение ... May 4 2009, 10:02 Dog Pawlowa Цитата(Vny4ek @ May 4 2009, 13:02) не пон... May 4 2009, 10:13 Vny4ek Здраствуйте, я разбираюсь с одним кодом, задача та... Jun 7 2009, 14:09 XVR 1. В main нет зацикливания в конце
2. printf в обр... Jun 8 2009, 09:03 Vny4ek да я взял уже работающий пример, прием работает ко... Jun 8 2009, 09:14 Vny4ek Здравствуйте, подскажите плиз. Вообщем я пытаюсь п... Jun 28 2009, 15:34 Vny4ek Ребят, ну подскажите плиз, я понимаю что не лучшее... Jun 29 2009, 17:41 SasaVitebsk Блин. Во что лень делает....
Первый пост ноябрь 2... Jun 29 2009, 18:17 Goodefine Простите что вмешиваюсь, но возникла похожая пробл... Jun 30 2009, 05:49 Vny4ek Goodefine, узнаю в лицо точно! Я с ним ковырял... Jul 1 2009, 07:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|