Прога пульта ДУ для Rc5, Samsung, Sony на СИ

Тема в разделе "C/C++/C#", создана пользователем zAzA99, 9 апр 2011.

  1. zAzA99

    zAzA99 New Member

    Регистрация:
    9 апр 2011
    Сообщения:
    4
    Симпатии:
    0
    Добрый день всем! :)

    Брата угораздило поступить на заочку и теперь меня (сисадмина) достает постоянно. Cегодня вообще прислал задачку не моего профиля, я в программировании полный нубас :) , а он аж плачет - препод его все соки выжимает.
    Уважаемые, помогите кто чем может, вот что он мне сегодня скинул:

    -------------
    программа написана для работы обучаемого пульта дистанционного управления для трех протоколов RC5, Samsung, Sony на языке СИ
    Там есть небольшое описание на русском, но этого мало
    препод спрашивает так - тыкает в строчку и спрашивает зачем это надо и что это делает
    одним словом нужно описание всех команд в проге, можно сказать и всех строк)))
    там очень много однотипных команд
    ну вот вроде и все если какие-нибудь вопросы возникнут скидывай глухаря!!!!!!!
    Спасибо!
    -------------
     

    Вложения:

    • __________1.doc
      Размер файла:
      135,5 КБ
      Просмотров:
      15
  2. zAzA99

    zAzA99 New Member

    Регистрация:
    9 апр 2011
    Сообщения:
    4
    Симпатии:
    0
    жду помощи, заранее спасибо!
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    У меня у одного Microsoft Word не установлен?
     
  4. zAzA99

    zAzA99 New Member

    Регистрация:
    9 апр 2011
    Сообщения:
    4
    Симпатии:
    0
    а в чем трабла собсна? :)

    ПРИЛОЖЕНИЕ 1
    Содержимое файла init.c
    Код (C++):
    #include <pic.h>
    void Device_Init(void)
    {
    //--Инициализация портов ввода/вывода--//
    TRISA=0b00001111; //RA0,RA1,RA2,RA3 - входы
    TRISB=0b00000001; //RB0 - выход
    ANSEL=0x0;
    ANSELH=0x0;
    TRISC=0x0;       //PORTC - выходы

    PORTA=0x0;       //запись нулей в PORTA
    PORTB=0x0;       //запись нулей в PORTB
    PORTC=0x0;       //запись нулей в PORTC
    //--------------------------------------//

    //--Инициализация модуля ШИМ--//
    CCP1CON=0b00001100;
    T2CON=0x0;
    CCPR1L=0b00000111;
    PR2=28;          //частота 36 кГц
    TMR2ON=1;
    //----------------------------//

    //--Настройка прерывания--//
    GIE=0;               //глобальное выключение прерываний
    PEIE=0;             //выключить все прерывания от перефирии
    TMR2IE=1;            //включить прерывание от таймера
    PEIE=1;             //включить прерывания от периферии
    RBIE=1;
    RBIF=0;
    IOCB0=1;                //включить прерывание
    GIE=1;               //включить глобальные прерывания

    //------------------------//
    }.
    Содержимое файла main.c.
    #include <pic.h>
    unsigned int one_ms,keycode,block_keyboard,scan_state,bit_transfer=0;
    unsigned int button_pressed,keycode_BUFF,keyboard_delay;
    unsigned int start_scan,cycle_counter=0,half_bit=1,shift_counter=0;
    unsigned int teach=0,button,ON_flag;
    long data_out=0;
    long data_out_0,data_out_1,data_out_2,data_out_3;
    long data_in,r_data;
    unsigned int protocol_RC5=0,protocol_SIRC=0,protocol_SAM=1;
    unsigned int RC5_cycle_counter=0,SIRC_cycle_counter=0;
    unsigned int RC5_input_bits_counter=0,SIRC_input_bits_counter=0;
    unsigned int SAM_input_bits_counter=0,receive_bits=0,receive_bits_counter=0;
    unsigned int RC5_shift_flag=0;
    unsigned int bit_out,SIRC_shift_flag=0,SAM_shift_flag=0;

    //--Прототипы функций--//

    void Device_Init(void);
    void keyboard(void);
    void timer(void);
    void execute_keycode(void);
    void eprom_write(unsigned char,unsigned char);
    eprom_read(unsigned char);
    void transmitt_data(void);

    //-----------------------------------
    void main(void)
    {
    Device_Init();              //инициализация устройства
    for(;;)
    {
    keyboard();
    }
    }
    void interrupt TMR(void)             //подпрограмма прерывания
    {

    if(TMR2IF)
    {
    if(teach==0)
    {  
    if(protocol_RC5==1)
    {
    if(RC5_shift_flag==1)
    {
    bit_out=data_out_RC5>>shift_counter&1;
    RC5_shift_flag=0;
    shift_counter++;
    if(shift_counter>14)
    shift_counter=0;
    }

    if(bit_out==1)
    {
    if(cycle_counter<32)
    TRISC2=0;            
    else if(cycle_counter>32&&cycle_counter<64)
    TRISC2=1;
    if(cycle_counter>32)
    {
    cycle_counter=0;
    RC5_shift_flag=1;
    }
    }
    if(bit_out==0)
    {
    if(cycle_counter<32)
    TRISC2=1;            
    else if(cycle_counter>32&&cycle_counter<64)
    TRISC2=0;
    if(cycle_counter>32)
    {
    cycle_counter=0;
    RC5_shift_flag=1;
    }
    }
    }
    if(protocol_SIRC==1)
    {
    if(SIRC_shift_flag==1)
    {
    bit_out=data_out_SIRC>>shift_counter&1;
    SIRC_shift_flag=0;
    shift_counter++;
    if(shift_counter>12)
    shift_counter=0;
    }

    if(bit_out==1)
    {
    if(cycle_counter<43)
    TRISC2=1;            
    else if(cycle_counter>43&&cycle_counter<64)
    TRISC2=0;
    if(cycle_counter>64)
    {
    cycle_counter=0;
    SIRC_shift_flag=1;
    }
    }

    if(bit_out==0)
    {
    if(cycle_counter<21)
    TRISC2=1;            
    else if(cycle_counter>21&&cycle_counter<42)
    TRISC2=0;
    if(cycle_counter>42)
    {
    cycle_counter=0;
    SIRC_shift_flag=1;
    }
    }
    }  

    if(protocol_SAM==1)
    {
    if(SAM_shift_flag==1)
    {
    bit_out=data_out_SAM>>shift_counter&1;
    SAM_shift_flag=0;
    shift_counter++;
    if(shift_counter>=32)
    shift_counter=0;
    }

    if(bit_out==1)
    {
    if(cycle_counter<23)
    TRISC2=1;            
    else if(cycle_counter>23&&cycle_counter<77)
    TRISC2=1;
    if(cycle_counter>77)
    {
    cycle_counter=0;
    SAM_shift_flag=1;
    }
    }

    else if(bit_out==0)
    {
    if(cycle_counter<23)
    TRISC2=1;            
    else if(cycle_counter>=23&&cycle_counter<46)
    TRISC2=0;
    if(cycle_counter>=46)
    {
    cycle_counter=0;
    SAM_shift_flag=1;
    }
    }
    }  
    TMR2IF=0;
    cycle_counter++;
    }  
    if(teach==1)
    {
    if(protocol_RC5)
    {
    receive_bits_counter++;
    if(receive_bits_counter>2)
    {
    RC5_input_bits_counter++;
    if(RC5_input_bits_counter>14)
    {
    RC5_input_bits_counter=0;
    data_in_flag=1;
    data_in_0=data_in&0xFF;
    data_in_1=(data_in>>8)&0xFF;
    }
    if(receive_bits==0b01)
    data_in=data_in+(1<<(14-RC5_input_bits_counter));
    else if(receive_bits==0b10)
    data_in=data_in+(0<<(14-RC5_input_bits_counter));

    receive_bits=0;
    }

    receive_bits=receive_bits+RB0<<(2-receive_bits_counter);

    }

    if(protocol_SIRC==1)
    {
    receive_bits_counter++;
    if(receive_bits_counter>2)
    {
    SIRC_input_bits_counter++;
    if(SIRC_input_bits_counter>12)
    {
    SIRC_input_bits_counter=0;
    data_in_flag=1;
    data_in_0=data_in&0xFF;
    data_in_1=(data_in>>8)&0xFF;
    }
    if(receive_bits==0b11)
    data_in=data_in+(1<<(12-SIRC_input_bits_counter));
    else if(receive_bits==0b10)
    data_in=data_in+(0<<(12-SIRC_input_bits_counter));

    receive_bits=0;
    }

    receive_bits=receive_bits+RB0<<(2-receive_bits_counter);
    }

    if(protocol_SAM==1)
    {
    receive_bits_counter++;
    if(receive_bits_counter>2)
    {
    SAM_input_bits_counter++;
    if(SAM_input_bits_counter>32)
    {
    SIRC_input_bits_counter=0;
    data_in_flag=1;
    data_in_0=data_in&0xFF;
    data_in_1=(data_in>>8)&0xFF;
    data_in_2=(data_in>>16)&0xFF;
    data_in_3=(data_in>>24)&0xFF;
    }
    if(receive_bits==0b100)
    data_in=data_in+(1<<(32-SIRC_input_bits_counter));
    else if(receive_bits==0b101)
    data_in=data_in+(0<<(32-SIRC_input_bits_counter));

    receive_bits=0;
    }

    receive_bits=receive_bits+RB0<<(2-receive_bits_counter);
    }
    }  
    }

    if(RBIF && teach)
    {
    RBIF=0;
    RBIE=0;

    if(protocol_RC5)
    PR2=889;
    else if(protocol_SIRC)
    PR2=600;
    else if(protocol_SAM)
    PR2=650;

    TMR2IE=1;
    }
    }
    void keyboard(void)
    {
    int y;
    //----------------------------------
    // RA7-1,5,9,P+           - выход
    // RA3-1                     - вход
    // RA2-5                     - вход
    // RA1-9                     - вход
    // RA0-P+                    - вход
    //----------------------------------
    // RA6-2,6,0,P-           - выход
    // RA3-2                     - вход
    // RA2-6                     - вход
    // RA1-0                     - вход
    // RA0-P-                    - вход
    //----------------------------------
    // RA5-3,7,vol+,on          - выход
    // RA3-3                     - вход
    // RA2-7                     - вход
    // RA1-vol+               - вход
    // RA0-on                    - вход
    //----------------------------------
    // RA4-4,8,vol-,teach        - выход
    // RA3-4                     - вход
    // RA2-8                     - вход
    // RA1-vol-               - вход
    // RA0-teach                 - вход
    //----------------------------------

    RA7=1;          //выставить единицу порт RA7
    RA6=1;
    RA5=1;
    RA4=1;
    start_scan=1;
    for(y=0;y<10000;y++);     //временная задержка

    if(PORTA==0xF0)
    block_keyboard=0;

    if(block_keyboard==0&&PORTA!=0xF0)   //если кнопка нажата, начать //сканирование
    {
    block_keyboard=1;
    }
    if(start_scan==1)             //сканирование клавиатуры
    {

    switch(scan_state){

    case 0:
    RA7=1;         
    RA6=0;
    RA5=0;
    RA4=0;
    for(y=0;y<10000;y++);

    break;

    case 1:
    RA7=0;         
    RA6=1;
    RA5=0;
    RA4=0;
    for(y=0;y<10000;y++);

    break;
    case 2:
    RA7=0;         
    RA6=0;
    RA5=1;
    RA4=0;
    for(y=0;y<10000;y++);

    break;

    case 3:
    RA7=0;         
    RA6=0;
    RA5=0;
    RA4=1;
    for(y=0;y<10000;y++);
    scan_state=-1;
    start_scan=0;
    break;

    }
    keycode=(PORTA<<1)+(RB0>>1)&1; //получить код кнопки
    execute_keycode();       //выполнить код кнопки
    scan_state++;

    }

    }



    void execute_keycode(void)
    {
    if(keycode==0x110)        //1
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x0);
    data_out_1=eprom_read(0x1);
    data_out_2=eprom_read(0x2);
    data_out_3=eprom_read(0x3);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x0);
    eprom_write(data_in_1,0x1);
    eprom_write(data_in_2,0x2);
    eprom_write(data_in_3,0x3);
    data_in_flag=0;
    }
    }
    else if(keycode==0x90)   //2
    {

    if(teach==0)
    {
    data_out_0=eprom_read(0x4);
    data_out_1=eprom_read(0x5);
    data_out_2=eprom_read(0x6);
    data_out_3=eprom_read(0x7);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }
    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x4);
    eprom_write(data_in_1,0x5);
    eprom_write(data_in_2,0x6);
    eprom_write(data_in_3,0x7);
    data_in_flag=0;
    }

    }

    else if(keycode==0x50)   //3
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x8);
    data_out_1=eprom_read(0x9);
    data_out_2=eprom_read(0xa);
    data_out_3=eprom_read(0xb);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }
    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x8);
    eprom_write(data_in_1,0x9);
    eprom_write(data_in_2,0xa);
    eprom_write(data_in_3,0xb);
    data_in_flag=0;
    }






    }

    else if(keycode==0x30)   //4
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0xc);
    data_out_1=eprom_read(0xd);
    data_out_2=eprom_read(0xe);
    data_out_3=eprom_read(0xf);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0xc);
    eprom_write(data_in_1,0xd);
    eprom_write(data_in_2,0xe);
    eprom_write(data_in_3,0xf);
    data_in_flag=0;
    }
    }

    else if(keycode==0x108)  //5
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x10);
    data_out_1=eprom_read(0x11);
    data_out_2=eprom_read(0x12);
    data_out_3=eprom_read(0x13);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x10);
    eprom_write(data_in_1,0x11);
    eprom_write(data_in_2,0x12);
    eprom_write(data_in_3,0x13);
    data_in_flag=0;
    }


    }
    else if(keycode==0x88)   //6
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x14);
    data_out_1=eprom_read(0x15);
    data_out_2=eprom_read(0x16);
    data_out_3=eprom_read(0x17);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x14);
    eprom_write(data_in_1,0x15);
    eprom_write(data_in_2,0x16);
    eprom_write(data_in_3,0x17);
    data_in_flag=0;
    }

    }

    else if(keycode==0x48)   //7
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x18);
    data_out_1=eprom_read(0x19);
    data_out_2=eprom_read(0x1A);
    data_out_3=eprom_read(0x1B);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x18);
    eprom_write(data_in_1,0x19);
    eprom_write(data_in_2,0x1A);
    eprom_write(data_in_3,0x1B);
    data_in_flag=0;
    }

    }

    else if(keycode==0x28)   //8
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x1c);
    data_out_1=eprom_read(0x1D);
    data_out_2=eprom_read(0x1E);
    data_out_3=eprom_read(0x1F);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }
    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x1c);
    eprom_write(data_in_1,0x1d);
    eprom_write(data_in_2,0x1e);
    eprom_write(data_in_3,0x1f);
    data_in_flag=0;
    }

    }

    else if(keycode==0x104)  //9
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x20);
    data_out_1=eprom_read(0x21);
    data_out_2=eprom_read(0x22);
    data_out_3=eprom_read(0x23);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x20);
    eprom_write(data_in_1,0x21);
    eprom_write(data_in_2,0x22);
    eprom_write(data_in_3,0x23);
    data_in_flag=0;
    }

    }
    else if(keycode==0x84)   //0
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x24);
    data_out_1=eprom_read(0x25);
    data_out_2=eprom_read(0x26);
    data_out_3=eprom_read(0x27);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x24);
    eprom_write(data_in_1,0x25);
    eprom_write(data_in_2,0x26);
    eprom_write(data_in_3,0x27);
    data_in_flag=0;
    }

    }
    else if(keycode==0x44)   //vol+
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x28);
    data_out_1=eprom_read(0x29);
    data_out_2=eprom_read(0x2A);
    data_out_3=eprom_read(0x2B);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x28);
    eprom_write(data_in_1,0x29);
    eprom_write(data_in_2,0x2A);
    eprom_write(data_in_3,0x2B);
    data_in_flag=0;
    }

    }

    else if(keycode==0x24)   //vol-
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x2c);
    data_out_1=eprom_read(0x2D);
    data_out_2=eprom_read(0x2E);
    data_out_3=eprom_read(0x2F);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    }
    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x2c);
    eprom_write(data_in_1,0x2d);
    eprom_write(data_in_2,0x2e);
    eprom_write(data_in_3,0x2f);
    data_in_flag=0;
    }


    }

    else if(keycode==0x102)  //P+
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x30);
    data_out_1=eprom_read(0x31);
    data_out_2=eprom_read(0x32);
    data_out_3=eprom_read(0x33);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x30);
    eprom_write(data_in_1,0x31);
    eprom_write(data_in_2,0x32);
    eprom_write(data_in_3,0x33);
    data_in_flag=0;
    }
    }

    else if(keycode==0x82)  //P-
    {
    if(teach==0)
    {
    data_out_0=eprom_read(0x34);
    data_out_1=eprom_read(0x35);
    data_out_2=eprom_read(0x36);
    data_out_3=eprom_read(0x37);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;
    TMR2ON=1;        

    }
    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x34);
    eprom_write(data_in_1,0x35);
    eprom_write(data_in_2,0x36);
    eprom_write(data_in_3,0x37);
    data_in_flag=0;
    }

    }
    else if(keycode==0x42)  //ON
    {
    if(teach==0 && ON_flag)
    {
    data_out_0=eprom_read(0x38);
    data_out_1=eprom_read(0x39);
    data_out_2=eprom_read(0x3A);
    data_out_3=eprom_read(0x3B);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    ON_flag=0;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x38);
    eprom_write(data_in_1,0x39);
    eprom_write(data_in_2,0x3A);
    eprom_write(data_in_3,0x3B);
    data_in_flag=0;
    }



    else if(teach==0 && !ON_flag)
    {
    data_out_0=eprom_read(0x3C);
    data_out_1=eprom_read(0x3D);
    data_out_2=eprom_read(0x3E);
    data_out_3=eprom_read(0x3F);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    ON_flag=1;
    }  

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x3C);
    eprom_write(data_in_1,0x3D);
    eprom_write(data_in_2,0x3E);
    eprom_write(data_in_3,0x3F);
    data_in_flag=0;
    }


    }
    else if(keycode==0x22)  //teach
    {
    if(teach==1)
    {
    teach=0;
    CCP1CON=0b00001100;
    RBIE=0;
    PR2=28;
    }
    else
    {
    teach=1;
    CCP1CON=0x0;         //выключить ШИМ
    RBIE=1;

    }
    }

    else if(keycode==0x101)         //RC5
    {
    protocol_RC5=1;
    protocol_SIRC=0;
    protocol_SAM=0;
    }
    else if(keycode==0x81)        //SIRC
    {
    protocol_RC5=0;
    protocol_SIRC=1;
    protocol_SAM=0;
    }

    else if(keycode==0x41)        //SAM
    {
    protocol_RC5=0;
    protocol_SIRC=0;
    protocol_SAM=1;
    }
    else if(keycode==0x21)        //OFF
    {
    if(teach==0 && ON_flag)
    {
    data_out_0=eprom_read(0x38);
    data_out_1=eprom_read(0x39);
    data_out_2=eprom_read(0x3A);
    data_out_3=eprom_read(0x3B);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    ON_flag=0;
    }

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x38);
    eprom_write(data_in_1,0x39);
    eprom_write(data_in_2,0x3A);
    eprom_write(data_in_3,0x3B);
    data_in_flag=0;
    }



    else if(teach==0 && !ON_flag)
    {
    data_out_0=eprom_read(0x3C);
    data_out_1=eprom_read(0x3D);
    data_out_2=eprom_read(0x3E);
    data_out_3=eprom_read(0x3F);
    data_out=(data_out_0<<24)+(data_out_1<<16)+(data_out_2<<8)+data_out_3;

    TMR2ON=1;
    ON_flag=1;
    }  

    else if(data_in_flag)
    {
    eprom_write(data_in_0,0x3C);
    eprom_write(data_in_1,0x3D);
    eprom_write(data_in_2,0x3E);
    eprom_write(data_in_3,0x3F);
    data_in_flag=0;
    }

    }
    }

    void eprom_write(unsigned char data,unsigned char adr) //запись в eeprom
    {
    if(!WR)
    {
    EEADR=adr;
    EEDATA=data;
    EEPGD=0;
    WREN=1;
    GIE=0;
    EECON2=0x55;
    EECON2=0xaa;
    WR=1;
    WREN=0;
    GIE=1;
    }
    }

    eprom_read(unsigned char adr)        //чтение eeprom
    {
    EEADR=adr;
    EEPGD=0;
    RD=1;
    r_data=EEDATA;
    }
     
  5. zAzA99

    zAzA99 New Member

    Регистрация:
    9 апр 2011
    Сообщения:
    4
    Симпатии:
    0
    спасибо пользователю этого форума с ником %6%
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Кстати обрати внимание на то, что этот код ни чем не скомпилируется:
    Код (C++):
        TRISA=0b00001111; //RA0,RA1,RA2,RA3 - входы
    TRISB=0b00000001; //RB0 - выход
    Таким образом 16-ые числа в языке Си не задаются.
     
Загрузка...

Поделиться этой страницей