16f877 ile tek kanal rf haberleşme ve step motor kontrolü

izafe

Üye
Katılım
16 Ağu 2008
Mesajlar
13
Puanları
1
Merabalar
Tezim için 16f877 ile tek kanaldan rf haberleşme sağlamam lazım.Alıcı ve verici olarak udeanın ATX-34S NRX-34U kullanmayı düşünüyorum.Fakat pic te yeni olduğum ve daha önce rf haberleşmeyle uğraşmadığım için nerden nasıl başlayacağıma bir türlü karar veremedim....microc'un helpinde Manchester Code Library'de verilen kod RF haberleşme kısmında işimi görür mü acaba?
Bir ikinci sorum ise isiste smilasyonuyla ilgili,microcun library'sindeki devre yeterli olurmu,rf haberleşme için?
Cevapları sabırsızlıkla bekliyorum..Teşekkürler
 
bende atx ve arx modül kullandm göndermek istediğin veriyi seri formatta yollyorsun karşıdan aynı formatta datayı alıyorsun step motoru piclemi süreceksin yoksa hariçten entegre mi kullaacaksın
 
microc'un Manchester Code Library deki receive kodu (aşağıdaki kod) işimi görür mü yani? bilen biri yada daha önce uğraşmış biri için çok kolaydır eminim ama bana çok karmaşık geliyo :S servoyuda picle süreceğim.Rf ile alınan dataya göre step motoru sürücem.Aslında ivme sensörüyle araba kontrol edicem.araba kısmı için 2 tane step motor kullanmayı düşünüyorum.Tabi rf kısmını öncelikle halletmem gerekiyor.
Kod:
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

// Manchester module connections
sbit MANRXPIN at RC0_bit;
sbit MANRXPIN_Direction at TRISC0_bit;
sbit MANTXPIN at RC1_bit;
sbit MANTXPIN_Direction at TRISC1_bit;
// End Manchester module connections

char error, ErrorCount, temp;

void main() {
  ErrorCount = 0;
  ANSEL  = 0;                        // Configure AN pins as digital I/O
  ANSELH = 0;
  TRISC.F5 = 0;
  Lcd_Init();                                     // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);                            // Clear LCD display

  Man_Receive_Init();                             // Initialize Receiver
  
  while (1) {                                     // Endless loop

      Lcd_Cmd(_LCD_FIRST_ROW);                    // Move cursor to the 1st row
       
      while (1) {                                 // Wait for the "start" byte
        temp = Man_Receive(&error);               // Attempt byte receive 
        if (temp == 0x0B)                         // "Start" byte, see Transmitter example
          break;                                  // We got the starting sequence
        if (error)                                // Exit so we do not loop forever
          break;
        }
        
      do
        {
          temp = Man_Receive(&error);             // Attempt byte receive
          if (error) {                            // If error occured
            Lcd_Chr_CP('?');                      // Write question mark on LCD
            ErrorCount++;                         // Update error counter
            if (ErrorCount > 20) {                // In case of multiple errors
              temp = Man_Synchro();               // Try to synchronize again
              //Man_Receive_Init();               // Alternative, try to Initialize Receiver again
              ErrorCount = 0;                     // Reset error counter
              }
            }
          else {                                  // No error occured
            if (temp != 0x0E)                     // If "End" byte was received(see Transmitter example)
              Lcd_Chr_CP(temp);                   //   do not write received byte on LCD
              }
          Delay_ms(25);
        }
      while (temp != 0x0E);                      // If "End" byte was received exit do loop
   }
}
 
Moderatör tarafında düzenlendi:
bi fikri olan yokmu??
 
bu yazdığın kod hakkında bir fikrim yok.
------------------
ama araştırıp döküman olarak sana dönebilirim.
 
Son düzenleme:
aslında ben bu kodu kullanmaktan vazgeçtim çünkü sadece rf ile işim bitmicek..koda yeni eklemeler yapmam gerekiyor.bu kodu kullanırsam eğer işimi daha da zorlaştırıcam sanırım..

aslında size şunu sorabiliirim.Rf haberleşme yapıcam ben ama hangi komutlar kullanılır nasıl kullanılır bunları bilmiyorum.microc kullanıcam..bi kaynak yani yazarken yardımcı olabilcek bi site yada kitap biliyormusunuz acaba?
buarada yardımcı olduğunuz için çook teşekkür ederim:))
 
abi eğer ccs kullanacaksan sana yardımcı olabilirim .
 
evet ccs kullanıcam :)yardım edersen çok seninirim ya:)
 
arx modülün hangi versiyonunu kullanıyorsun?34 mü
 
henüz almadım ptesi sipariş vermeyi düşünüyorum
 

Forum istatistikleri

Konular
129,034
Mesajlar
922,688
Kullanıcılar
451,292
Son üye
grafon01

Yeni konular

Geri
Üst