реклама на сайте
подробности

 
 
> Вопрос по Си...
wasp
сообщение Apr 22 2008, 15:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



Прошу прощения за глупый вопрос.
Пытаюсь разобраться с программой для РIС(пример передачи пакета данных для RF-модуля FSK-передатчика http://www.hoperf.com/pdf/RF02B.pdf ).
Сама программка находится здесь: http://www.hoperf.com/pdf/RF02_code.pdf стр. 11-16.
И там на стр. 15 вот такой фрагмент кода:


Не подскажите зачем там эти две строчки:
........
while (!nIRQ);
while (nIRQ);
.........

что бы это значило? 05.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
wasp
сообщение Apr 29 2008, 20:57
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 2-09-07
Пользователь №: 30 237



мда, до nIRQ, как выяснилось, дело не доходит.
раздобыл осцилограф, на выводе nIRQ абсолютный ноль.
попробовал поменять программно частоту CLK (можно менять в диапазоне 1-10 МГц), безрезультатно.
держится 1 МГц - частота по умолчанию.
вывод - инициализация не проходит, а значит не выставляется бит ebs, ea как и все остальные.
поэтому и нет nIRQ.
вот код программки, может кому что в глаза бросится, буду премного благодарен.
Код
typedef unsigned char uchar;
typedef unsigned int uint;

#include <16F676.h>
#device adc=8
#FUSES NOWDT                     //No Watch Dog Timer
#FUSES HS                        //High speed Osc (> 4mhz)
#FUSES NOPROTECT                 //Code not protected from reading
#FUSES NOBROWNOUT                //No brownout reset
#FUSES NOMCLR                    //Master Clear pin used for I/O
#FUSES NOCPD                     //No EE protection
#FUSES NOPUT                     //No Power Up Timer
#FUSES BANDGAP_HIGH          
#use delay(clock=8000000)
#byte PORTC = 7
#byte PORTA = 5
#bit LED = PORTA.1
#bit SDI = PORTC.0
#bit SCK = PORTC.1
#bit nSEL = PORTC.2
#bit FSK = PORTC.3

#bit nIRQ = PORTC.4
#bit SDO = PORTC.5

void Write0( void );
void Write1( void );
void WriteCMD( uint CMD );
void RF2_Init( void );
void WriteFSKbyte( uchar DATA );

   uint ChkSum;

/*****************************************************************/

void RF2_Init( void )
{
   nSEL=1;
   SDI=1;
   SCK=0;
   FSK=0;
}

void main()
{
   ChkSum=0;
  
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
  
   SET_TRIS_C(0x30);
   SET_TRIS_A(0x0);
      LED=0;

   RF2_Init();
   WriteCMD( 0xCC00 );
   WriteCMD( 0x8B61 );
   WriteCMD( 0xA640 );
   WriteCMD( 0xD040 );
   WriteCMD( 0xC823 );
   WriteCMD( 0xC220 );
   WriteCMD( 0xC001 );

   while (1)
   {
      WriteCMD( 0xC039 );

      LED=1;
      delay_ms(100);
      LED=0;
      delay_ms(100);

      WriteFSKbyte( 0xAA );
      WriteFSKbyte( 0xAA );
      WriteFSKbyte( 0xAA );
      WriteFSKbyte( 0x2D );
      WriteFSKbyte( 0xD4 );

      WriteFSKbyte( 0x30 );
      ChkSum+=0x30;
      WriteFSKbyte( 0x31 );
      ChkSum+=0x31;
      WriteFSKbyte( 0x32 );
      ChkSum+=0x32;
      WriteFSKbyte( 0x33 );
      ChkSum+=0x33;
      WriteFSKbyte( 0x34 );
      ChkSum+=0x34;
      WriteFSKbyte( 0x35 );
      ChkSum+=0x35;
      WriteFSKbyte( 0x36 );
      ChkSum+=0x36;
      WriteFSKbyte( 0x37 );
      ChkSum+=0x37;
      WriteFSKbyte( 0x38 );
      ChkSum+=0x38;
      WriteFSKbyte( 0x39 );
      ChkSum+=0x39;
      WriteFSKbyte( 0x3A );
      ChkSum+=0x3A;
      WriteFSKbyte( 0x3B );
      ChkSum+=0x3B;
      WriteFSKbyte( 0x3C );
      ChkSum+=0x3C;
      WriteFSKbyte( 0x3D );
      ChkSum+=0x3D;
      WriteFSKbyte( 0x3E );
      ChkSum+=0x3E;
      WriteFSKbyte( 0x3F );
      ChkSum+=0x3F;

      ChkSum&=0x0FF;
      WriteFSKbyte( ChkSum );
      WriteFSKbyte( 0xAA );
      WriteCMD( 0xC001 );
      delay_ms(1000);
   }
}

/************************************************************/
void Write0( void )
{
   SDI=0;
   SCK=0;
   #asm
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP  
   NOP
   NOP
   NOP
   NOP
   #endasm
   SCK=1;
   #asm
   NOP
   #endasm
}

/****************************************************************/
void Write1( void )
{
   SDI=1;
   SCK=0;
   #asm
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   #endasm
   SCK=1;
   #asm
   NOP
   #endasm
}
/*****************************************************************/
void WriteFSKbyte( uchar DATA )
{
   uchar n=8;
   nSEL=1;
   while (n--)
      {
      while (!nIRQ);
      while (nIRQ);
      if (DATA&0x80) FSK=1;
      else FSK=0;
      DATA=DATA<<1;
      }
}
/*****************************************************************/
void WriteCMD( uint CMD )
{
   uchar n=16;
   SCK=0;
   nSEL=0;
   while (n--)
   {
      if (CMD&0x8000) Write1();
      else Write0();
      CMD=CMD<<1;
   }
   SCK=0;
   nSEL=1;

}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- wasp   Вопрос по Си...   Apr 22 2008, 15:29
- - rezident   Видимо автор таким образом пытался импульс какой-т...   Apr 22 2008, 15:33
|- - wasp   Цитата(rezident @ Apr 22 2008, 19:33) Вид...   Apr 22 2008, 15:46
|- - tazik   Цитата(wasp @ Apr 22 2008, 23:46) спасибо...   Apr 22 2008, 16:02
|- - wasp   Цитата(tazik @ Apr 22 2008, 20:02) Синтак...   Apr 22 2008, 16:08
|- - 2b|!2b?..   Цитата(tazik @ Apr 22 2008, 20:02) Синтак...   Apr 28 2008, 07:12
- - arttab   а nIRQ должны быть объявлены как изменяемые из вне...   Apr 22 2008, 23:46
- - wasp   в продолжение темы... прошил и подключил PIC16F676...   Apr 25 2008, 19:07
|- - tazik   Цитата(wasp @ Apr 26 2008, 03:07) в продо...   Apr 26 2008, 08:03
|- - wasp   Цитата(tazik @ Apr 26 2008, 12:03) Сам не...   Apr 28 2008, 06:18
|- - tazik   Цитата(wasp @ Apr 28 2008, 14:18) Но не с...   Apr 28 2008, 17:20
|- - wasp   Цитата(tazik @ Apr 28 2008, 21:20) Микрос...   Apr 28 2008, 18:38
|- - tazik   Цитата(wasp @ Apr 29 2008, 02:38) из нее ...   Apr 28 2008, 18:57
|- - wasp   Цитата(tazik @ Apr 28 2008, 22:57) Давайт...   Apr 28 2008, 19:19
- - vank   Привет! И мне интересует этая програма. Я поку...   Apr 26 2008, 06:59
|- - Сергей Борщ   Цитата(wasp @ Apr 29 2008, 23:57) вот код...   Apr 29 2008, 23:33
|- - wasp   Цитата(Сергей Борщ @ Apr 30 2008, 03:33) ...   May 1 2008, 10:44
- - vank   Извините, на моя просба никто не можеть помочь?   Apr 30 2008, 04:47
|- - tazik   Цитата(vank @ Apr 30 2008, 12:47) Извинит...   May 1 2008, 09:25
|- - vank   Цитата(tazik @ May 1 2008, 13:25) А почем...   May 1 2008, 12:20
|- - tazik   Цитата(vank @ May 1 2008, 20:20) Но мне н...   May 1 2008, 12:24
- - wasp   поставил тип переменной CMD "unsigned long in...   May 1 2008, 16:04
|- - wasp   никак не получается инициализировать RFM02. по пре...   May 2 2008, 08:50
- - Different   Вот куски кода для модулей HopeRF с немецких сайто...   May 22 2008, 12:13
- - SashaGubov   а эти модули от 5 вольт можно питать?   Sep 12 2008, 10:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 09:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016