Страница 2 из 3 Первая 123 Последняя
Показано с 21 по 40 из 51

Тема: Подскажите по PIC18F452

  1. #21
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Я вывел сообщение *Hello!*, но при этом я кажний символ вытаскивал при помощи Write Data to RAM по отдельности. А как можно целое слово вывести, не мучасть с каждой буквой?
    Ну у меня же это выше показано в функции putstr(),

    пишешь putstr("Hello World!");

    Цитата Сообщение от wi3ik Посмотреть сообщение
    char data = *hello!*;
    И что, комлиятор не ругается на такую строчку? На помойку его....

    У меня на такое сразу пишет:
    Error [192] 8.14 undefined identifier "hello"
    Error [195] 8.19 expression syntax

    ---------- Добавлено в 14:22 ---------- Предыдущее сообщение в 14:20 ----------

    Цитата Сообщение от wi3ik Посмотреть сообщение
    RS = 1;
    RW = 0;
    E = 1;
    PORTB = data; //D0-D7
    Delay100TCYx(3);
    E = 0;
    RW=1;
    А это вообще говрит о том, что ты не только не прочитал книжку по Си, но и понятия не имеешь как работает индикатор (его шина) и что ты вообще в своей программе делаешь.


    Цитата Сообщение от wi3ik Посмотреть сообщение
    У меня уже есть C++ Для чайников
    Тебе сказали "книжка по Си", а не "С++", это как "канал" и "канализация".
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  2. #22
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452



    ---------- Добавлено в 02:16 ---------- Предыдущее сообщение в 01:13 ----------

    Цитата Сообщение от Alex Посмотреть сообщение
    Тебе сказали "книжка по Си", а не "С++", это как "канал" и "канализация".
    Огромное спасибо, что терпите меня и мои вопросы.....................Знания мои по Си и в правду не очень................ноя стараюсь...........найду время.......обязательно ознакомлюсь

    ---------- Добавлено в 02:19 ---------- Предыдущее сообщение в 02:16 ----------

    Почему я сделал индикацию
    Код:
    void lcd_init()
     {
       ADCON1 = 0xF7;
       WriteCmdXLCD(0x33);  //set data length to 8
       WriteCmdXLCD(0x32);  // 
       // configure external LCD
       OpenXLCD( FOUR_BIT & LINE_5X7 );
       //WriteWCMD(0x80); //1st digit
       WriteCmdXLCD( 0x8f ); //lost digit
       WriteCmdXLCD( CURSOR_OFF );
       WriteCmdXLCD( BLINK_OFF );
       WriteCmdXLCD( SHIFT_CUR_LEFT );
       WriteCmdXLCD( SHIFT_DISP_RIGHT );
     }
    А курсор не исчезает?
    Последний раз редактировалось wi3ik; 07.04.2011 в 03:14.

  3. #23
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Alex,ОГРОМНЕЙШЕЕ ДЯКУЮ)))))))))))))))
    Нажмите на изображение для увеличения. 

Название:	Безымянный.JPG 
Просмотров:	490 
Размер:	186.2 Кб 
ID:	119698

  4. #24
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Хочу вывести одно сообщение, которое будет показивать ЖК 5 сек, а потом следующее.
    С отображением разобрался............
    1). Как сделать эту паузу?
    2). Как правильно записать sprintf для float x = 0.2;
    Для int все работает нормально

    int butrata = 130;

    sprintf(&buf, "BuTPaTa = %d ", butrata); //Send to LCD
    printf(&buf);
    while(BusyXLCD());
    putsXLCD(&buf);
    Delay10KTCYx(100);
    Последний раз редактировалось wi3ik; 07.04.2011 в 12:30.

  5. #25
    Завсегдатай Аватар для shkal
    Регистрация
    30.11.2004
    Адрес
    Москва, Russia
    Возраст
    58
    Сообщений
    1,989

    По умолчанию Re: Подскажите по PIC18F452

    Alex, А есть вообще какой-то смысл в использовании библиотек управления перифирией, которые идут вместе с в микрочиповским компилятором С30 ?
    Мне (как новичку) показалось, что SPI-ем проще рулить руками, теперь тоже LCD на очереди.

  6. #26
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Хочу подключить клавиатуру...
    Есть символы:
    Код:
    char keycodes[12] = {*1*,*2*,*3*,*4*,*5*,*6*,*7*,*8*,*9*,*0*,*.*,*C*};
    Хочу их выводить командой
    Код:
    WriteDataXLCD(keycodes[i]);
    1). Как присвоить каждой клавише клавиатуры 3Х4 определенный keycodes[х] ?
    2). Как работать с float sprintf?

  7. #27
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    50
    Сообщений
    3,434

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Как присвоить каждой клавише клавиатуры 3Х4 определенный keycodes[х] ?
    Написать драйвер клавы. Или посмотреть как это делают другие.
    В три строки не уложится по любому.

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Как работать с float sprintf?
    Поставить под виндами любой вменяемый сишный компилятор. Хоть древний турбо си.
    И мануалы с учебниками и практика практика.

    В микроконтроллерах кстати всякие printf и прочие производные как правило не используют.
    Очень много микроконтроллерных программ, где вообще не используются сишные библиотеки.
    Неплохо бы научится самостоятельно выводить и вводить числа, развивает мышление.
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  8. #28
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от shkal Посмотреть сообщение
    Alex, А есть вообще какой-то смысл в использовании библиотек управления перифирией, которые идут вместе с в микрочиповским компилятором С30 ?
    Понятия не имею, я пользуюсь не микрочиповским а Хай-Течем.
    Цитата Сообщение от Openreel Посмотреть сообщение
    Поставить под виндами любой вменяемый сишный компилятор. Хоть древний турбо си.
    У меня Борланд С и Билдер стоят

    Цитата Сообщение от Openreel Посмотреть сообщение
    В микроконтроллерах кстати всякие printf и прочие производные как правило не используют.
    Не используют только в самых мелких, и когда проблемы с местом в памяти, а так - используют, еще как.
    Только в отношении (s)printf надо иметь ввиду что в микроконтроллерных компиляторах они не всегда полноценные (некоторые опции е работают), и в настройках их можно ограничить еще больше (например выключить работу с float - и сразу sprintf станет втрое меньше).
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  9. #29
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Я хочу вывести сообщение №1, чтобы оно отображалось 5 сек, а потом сообщение №2.
    С выводом проблем нет................а вот как реализовать эту паузу?

  10. #30
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    а вот как реализовать эту паузу?
    Организовать паузу - существует масса способов, от самого примитивного, типа for(i=0;i<NUM;i++) NOP(); когда процессор будет тупо стоять и ждать,и более интеллигентного, типа for (i=0;i<NUM;i++) Sleep();, когда процессор хотя и тоже больше ничего делать не будет, но зато и ток потреблять почти не будет (актуально когда от батарейки питается), до более верных способов типа проверки флагов, выставляемых по таймерному прерыванию (их тоже масса вариантов).
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  11. #31
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    50
    Сообщений
    3,434

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от Alex Посмотреть сообщение
    У меня Борланд С и Билдер стоят
    Open Watcom + MSVC6.0 мне хватает для консольных поделок, моделирования и dll.
    Turbo C своими хелпами и примерами хороша и оболочка удобная, для начинающих самое то.

    Цитата Сообщение от Alex Посмотреть сообщение
    когда проблемы с местом в памяти, а так - используют, еще как
    Возможно, но иногда не используют. Не удобно бывает
    У меня две технологии используются, страничная система с виртуальными экранами и некое подобие ресурсов, где меню, целые диалоги и их смена описываются удобными и компактными скриптами. До автогенерации кода, документации и визуального программирования остается один шаг.
    На базе printf это задолбаешся делать.

    Цитата Сообщение от wi3ik Посмотреть сообщение
    а вот как реализовать эту паузу
    Паузы реализуются двумя способами
    1. тупо крутим бааальшой цикл циклов.
    2. заводим счетчик в таймерном прерывании и в фоне ожидаем событие.

    Первое проще, но гораздо тупее и не всегда работает точно.
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  12. #32
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Огромнейшее СПАСИБО всем, кто учил, терпел и давал подсказки, в особенности Alexу.
    Вот что у меня получилось......................хоть может и страшненько смотрится, но я старался
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Безымянный.JPG 
Просмотров:	161 
Размер:	168.6 Кб 
ID:	120021  
    Вложения Вложения
    • Тип файла: rar work04.rar (146.7 Кб, Просмотров: 73)

  13. #33
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Вот что у меня получилось..
    Нууу, картинка красивая.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  14. #34
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Как организовать связь контроллера с клавиатурой ПК............или что-то вроде того............чтобы я мог, например, управлять им через компьютер (посылать данные на него)?
    Что искать?
    Последний раз редактировалось wi3ik; 12.04.2011 в 20:51.

  15. #35
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Как организовать связь контроллера с клавиатурой ПК.
    Проще всего - если клавиатура PS/2, а если она еще и кроме как в АТ режиме умеет еще и в ХТ-режиме работать - то задача совсем примитивная.
    С USB-клавой сложнее - в контроллере должден быть USB HOST.


    Цитата Сообщение от wi3ik Посмотреть сообщение
    например, управлять им через компьютер (посылать данные на него)?
    Прицепить к компу на СОМ-порт (при отсутсвии - через любой USB2COM переходник), UART наверное в контроллере есть.
    Все остальные способы - существенно сложнее.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  16. #36
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Для начала, я хочу сделать схему подключения контроллера к ПК через СОМ-порт (в протеусе)...................... сам как это делать не знаю................нашел в интернете несколько примеров...........по них сделал...................посмотрите правильно ли подключены порти?
    И еще............я так понимаю для PIC18f452 USART должен работать на портах RC6 и RC7...........или их можно выбрать любые?
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Безымянный.JPG 
Просмотров:	124 
Размер:	84.4 Кб 
ID:	120329  

  17. #37
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,704

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от wi3ik Посмотреть сообщение
    Для начала, я хочу сделать схему подключения контроллера к ПК через СОМ-порт (в протеусе)...................... сам как это делать не знаю.
    Я тоже не знаю как это сделать в протеусе, у меня его нет.

    Цитата Сообщение от wi3ik Посмотреть сообщение
    я так понимаю для PIC18f452 USART должен работать на портах RC6 и RC7...........или их можно выбрать любые?
    Это читай даташит, я не помню про конкретно этот кристалл. Вообще у Микрочипа у одних кристаллов функции ног фиксированные, у других - можно переопределить через матрицу соединений.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  18. #38
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Как проверить работает ли код? Для передачи данных из ПИКа в ПК такой код работать будет:
    Код:
    #include "p18f452.h"
    #include "usart.h"
    #pragma config WDT = OFF   //Turn off watchdog timer
    #include "delays.h"
    
    void transmit_data(void);  //передача
    void receive_data(void);   //прийом
    void conf_usart(void);     //Конфігурація модуля USART
    
    
    unsigned char data;   //Дані які будуть пересилатись
    
    
    
    // ...........Конфігурація модуля USART для асинхронного зв*язку
    //    RX = Port C, bit 7 
    //    TX = Port C, bit 6  
    
    
    void main()
     {
     TRISD = 0b11000000;
     PORTD = 0x3F;//0b00111111;
       ADCON1 |= 0x0F;      //як цифрові входи/виходи 
        conf_usart();        //Конфігурація модуля USART
        while(1)
        {
         transmit_data();  //передача даних через USART     
        }
     }
    
    
    void conf_usart()
      {    // 9600 біт/с з частотою 4MHz
        OpenUSART (USART_TX_INT_OFF &    //переривання від передавача USART ВИКЛ
                USART_RX_INT_OFF &        //переривання від приймача USART ВИКЛ
               USART_ASYNCH_MODE &       //асинхронний режим роботи USART, повний дуплекс
               USART_EIGHT_BIT &         //8-ми розрядна передача
               USART_CONT_RX &           //дозвіл прийому даних
                USART_BRGH_HIGH,          //високошвидкісний режим
               25);
      }
    
    void transmit_data()          //передача даних через USART
      {
    data = PORTD;
         while(BusyUSART());
         putcUSART(data);
    //while(BusyUSART());
    Delay1KTCYx(4);
     //Delay10TCYx(255);
      }

  19. #39
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    50
    Сообщений
    3,434

    По умолчанию Re: Подскажите по PIC18F452

    Логичней так
    Код:
    void transmit_data()          //передача даних через USART
      {
         while(BusyUSART());
         data = PORTD;
         putcUSART(data);
      }
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  20. #40
    wi3ik
    Гость

    По умолчанию Re: Подскажите по PIC18F452

    Цитата Сообщение от Openreel Посмотреть сообщение
    Логичней так
    Код:
    void transmit_data()          //передача даних через USART
      {
         while(BusyUSART());
         data = PORTD;
         putcUSART(data);
      }
    Если я пишу этот код, но без строчки Delay1KTCYx(4); в протеусе получаю сообщение: Simulation is not running in real time due to excessive CPU load.
    С чем это связано? Процессор не успевает обработать данные для передачи или что?

Страница 2 из 3 Первая 123 Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •