forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
PPM generator

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> AVR
 
kuba
Anonymní





PříspěvekZaslal: 06 září 2016, 1:23    Předmět: PPM generator Citovat

Jak generovat PPM protokol co se používá při RC modelech.
Potřeboval bych nasměrovat jak to průběžně přepočítat pod vystup časovače.
Návrat nahoru
 

 
kuto
Profesionál
Profesionál


Založen: 13.7.2010
Příspěvky: 118
Bydliště: Varnsdorf

PříspěvekZaslal: 06 září 2016, 13:37    Předmět: Citovat

A co potřebuješ generovat? Celý rámec pro několik kanálů nebo signál pro jeden kanál?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
kuba
Anonymní





PříspěvekZaslal: 06 září 2016, 20:05    Předmět: Citovat

Potřebují celý rámec 8 kanálu jako na tomto obrázku http://www.aerodesign.de/peter/2000/PCM/frame_ppm.gif
Návrat nahoru
 

 
kuto
Profesionál
Profesionál


Založen: 13.7.2010
Příspěvky: 118
Bydliště: Varnsdorf

PříspěvekZaslal: 08 září 2016, 7:47    Předmět: Citovat

Dělal jsem dekodér do přijímače, tak si to prohlídni. časovač 0 je pro měření délky impulsů z vysílače, 1 generuje impulsy na jednotlivých výstupech přijímače a 2 odměřuje 20ms rámce. Ty potřebuješ ale funkci kodéru. Takže použiješ jeden časovač pro 20ms a druhý pro generování 8 impulsů. Po přetečení prvního nastartuješ druhý časovač, nastavíš mu dobu do přetečení prvního kanálu a nastavíš výstup na 1, počkáš na přetečení, nastavíš na mezeru 320us , shodíš výstup na 0, počkáš na přetečení a znova pro další kanál.


PPMdekoder.zip
 Komentář:

Stáhnout
 Soubor:  PPMdekoder.zip
 Velikost:  2.65 kB
 Staženo:  34 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
kuba
Anonymní





PříspěvekZaslal: 08 září 2016, 22:45    Předmět: Citovat

Našel sem něco takového https://github.com/Hasi123/generate-ppm-signal/blob/master/Generate_PPM_signal_nodelay.inojenom to potřebují přeložit do C
Tady sem začal ale výstupu OC1A je jenom LOG 1 neměl by se mi tam objevit start puls
kód:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

uint16_t chanel[7];

int main (void){

   DDRA |= (1<<PA0);       //LED

   DDRD |= (1<<PD5);


//   TCCR1A |= (1<<COM1A1) | (1<<COM1A0);     // set polarity 1
   TCCR1A |= (1<<COM1A1);                  // set polarity 0

   OCR1A = 100;  // compare match register, change this
   TCCR1B |= (1 << WGM12) | (1 << WGM13) | (1 << WGM11) | (1 << WGM10);  // turn on CTC mode
   TCCR1B |= (1 << CS11);  // 8 prescaler: 0,5 microseconds at 16mhz
   TIMSK |= (1 << OCIE1A); // enable timer compare interrupt

   sei();

   while(1){

      _delay_ms(500);
       PORTA ^= (1<<PA0);  //LED

   }
}

ISR(TIMER1_COMPA_vect){

   static uint8_t state = 1;

   TCNT1 = 0;

   if(state){
      TCCR1A |= (1<<COM1A1) | (1<<COM1A0);     // set polarity 1
       OCR1A = 600;
       state = 0;

   }
   else{
      TCCR1A |= (1<<COM1A1);                  // set polarity 0
      state = 1;

   }
}
Návrat nahoru
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> AVR Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)