Jump to content

    

Vny4ek

Участник*
  • Content Count

    145
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vny4ek

  • Rank
    Частый гость
  1. Спасибо, но "черный ящик" мне не нужно, хочется разобраться, полностью согласен что исходник с другой платформы скорее запутает. "Будем искать" (с)
  2. Конечно, был бы очень признателен если дали бы посмотреть примеры
  3. Спасибо за ответ. Тоесть трансивер+всю обвязку все же необходимо использовать (если разговор про AVR) Функционал предполагается такой (посмотреть что в шине передается, в последующем попытаться что нибудь отправить) Скорее изучение интересно STM23 к сожалению не подойдет. А для таких задач реально ли найти какие-нибудь примеры на Си. что бы освоить или достаточно закрытая тема?
  4. Здраствуйте, подскажите пожалуйста, задача вроде простая Хочу поиграться с автомобильной CAN шиной, тоесть планирую сделать устройство которое можно подключить к шине и для начала прочитать пакеты гуляющие в ней с выводом в UART. Сразу вопросы следующего порядка 1) Хочу использовать AVR с CAN на борту, но вижу что есть еще CAN трансиверы, нужны ли мне они при использовании AVR с поддержкой CAN, ну и как оптимальней вообще организовать схему и на каких деталях, что еще нужно в обвязке как правило. 2) если по программной части видели на Си исходники где все не слишком сложно, хотелось бы тоже посмотреть. Устройство не промышленное, просто любительская поделка
  5. читаю даташит но там нет такой частоты, параметр отвечающий за это как я понимаю это CS<1:0>: Clock Source Select bits 00 = FOSC/8192 01 = T1OSC (Timer1)/32 1x = LFINTOSC (31 kHz)/32 и прескалер LP<3:0>: LCD Prescaler Select bits 1111 = 1:16 1110 = 1:15 1101 = 1:14 1100 = 1:13 1011 = 1:12 1010 = 1:11 1001 = 1:10 1000 = 1:9 0111 = 1:8 0110 = 1:7 0101 = 1:6 0100 = 1:5 0011 = 1:4 0010 = 1:3 0001 = 1:2 0000 = 1:1 кварц 1мгц, у меня стоит как тут реализовать 30гц, правильно ли понимаю что нужно установить 00 = FOSC/8192 и прескалером выбрать частоту что бы получилось 30гц ? Так и сделал, но у меня все сегменты начинают моргать по очереди снизу дисплея вверх. Причем в LCDDATA я ничего не присваивал. Подскажите пожалуйста на что еще посмотреть
  6. Спасибо за совет, действительно думал над этим, но поторопился и залил уже свою прошивку, сейчас уже все что нужно работает, единственное контрастность как то особо не радует, на штатном варианте лучше высвечивалось. Может каким то регистрам обратить больше внимания в этом случае. LP<3-0> меняют картину, но как то не полно, конечно нашел оптимальную, но все как описал выше
  7. Вызвонил на дисплее выводы, схему рисовать нет смысла я думаю, напишу какие выводы дисплея приходят на какие ножки PIC'a 1 -SEG2 2 -SEG3 3 -SEG4 4 -SEG5 5 -SEG6 6 -SEG7 7 -SEG8 8 -SEG9 9 -SEG10 10 -SEG15 11 -SEG16 12 -SEG17 13 -SEG18 14 -SEG19 15 -SEG20 16 -SEG21 17 -SEG22 18 -COM0 19 -COM1 20 -COM2 21 -COM3 Подскажите пожайлуста как запустить дисплей Может кто поделится примером использования на си Что то выводится, и я уже разобрался как назначать сегменты, но вот одно плохо, сегменты зажигаются нужные, но если наклонить дисплей то еле видно другие или если в другую сторону наклонить то тускло видно те сегменты что зажигаю командой.
  8. Тогда сегодня как раз эти и займусь, то есть вызвоню выводы идущие от мк к дисплею.
  9. Добрый день. Ковыряю пейджер от сигналки, и поскольку там пик внутри захотелось попробовать выводить на дисплей что то свое. Сразу появились вопросы 21 вывод на LCD (гибкий шлейф прям на стекло с PIC) Вопросы: 1) Так понял что разработчики использовали аппаратный драйвер LCD в пике для того что бы зажигать значения или не факт? 2) что мне нужно узнать из схемы устройства что бы инициализировать дисплей, не понятно просто ни в каком режиме работает дисплей, вызвонить ножки ПИКа идущие на дисплей, но что мне это даст? 3) посоветуйте план действий, что сделать и как начать использовать дисплей, имея только устройство в руках. Может быть есть пример исходников на Си, компилятор HI-TECH. Я пробовал пытаться запустить дисплей с разными режимами, но это все не помогло, в лучшем случае нелепо загорались несколько элементов, и то очень тускло, либо плавно гасли. Спасибо
  10. Ну то что имею по этому и взялся за этот проц CONFIG регистр я посмотрел там все в принципе понятно, но как сконфигурировать порт А как обычный цифровой порт с входами выходами не догоняю если не сложно подскажите куда смотреть Забыл еще спросить как в двух словах можно по наименованию пика определить примерно его функционал ну то что 12 16 18 это как тини мега хмега у авр условно я понял но что значит C или F и цифры после них не особо ясно у Авр понятней хотя может просто с неривычки и незнания так
  11. Извините, просто поставил MPLAB и попытался задействовать прерывание, ну что бы понять как это выглядит. Использую пример с компилятора. "вывел на B порт кнопку все заработало" :) ну входом с кнопки сделал не RA0 а RB3 До дребезга, как и до чего то путного еще очень далеко, начал только разбираться изучаю :) проц PIC16F913 сильно не пинайте пытаюсь программировать как хобби чтоли
  12. ну я пытаюсь проверить переполнился ли таймер (дотикал до 255) затем делаю что то и снова сбрасываю флаг переполнения в ожидании следующего такого события. ну тоесть прерывание для того что бы вызывать определенные функции через заданные промежутки времени. и фоном пока таймер не переполнился что то могло еще выполняться А по порту А действительно Вы правы дело в аналоговых функциях порта
  13. Пипец 40 просмотров и 0 ответов :) Я понял в чем ошибка, порта А сконфигурировать надо, вывел на B порт кнопку все заработало
  14. Подскажите пожалуйста начал разбираться с мплаб и HI-TECH такой код простой, по переполнению таймера меняет состояние одной из ножек и по нажатию кнопки (появлению там единицы) должен подать на RA3 проверяю в протеусе подцепил кнопку на RA0 подаю +5в туда но это событие не обрабатывается а если в коде меняю параметр в условии на противоположном то условие выполняется (вывод на RA3 единицу и запрет прерывания) вот сам код #include <htc.h> /* * Interrupt test for PIC * * Copyright (C)1997 HI-TECH Software. * Freely distributable. */ #define BUTTON RA0 //bit 1 of PORTC static volatile long count; static volatile bit bad_intr; void main(void) { /* setup stuff */ T0CS = 0; // Timer increments on instruction clock TRISA = 0x01; // Port A is input TRISB = 0xFE; // Port B bit 0 is output T0IE = 1; // Enable interrupt on TMR0 overflow GIE = 1; // Global interrupt enable CLRWDT(); // Idly kick the dog //RA3=1; while(1){ if (BUTTON==1){RA3=1; GIE=0;}; }; }//End of main static void interrupt isr(void) // Here be interrupt function - the name is // unimportant. { if(!T0IF) // Was this a timer overflow? bad_intr = 1; // NO! Shock horror! count++; // Add 1 to count - insert idle comment T0IF = 0; // Clear interrupt flag, ready for next PORTB ^= 1; // toggle bit 0 of Port B, to show we're alive } заранее спасибо
  15. Ага спасибо, к сожалению на этот пример нигде ссылку не видел.