Большой Воронежский Форум
Страница 15 из 43
« Первая < 59101112131415 16171819202125 > Последняя »
»Радиолюбитель>PIC контроллеры. Программаторы и первый проект на PIC
Denis124 13:55 25.12.2009
Да кварц стоит модуляцыя идет но на выходе CCP1 ,CCP2 ничего нет [Ответ]
Denis124 14:27 25.12.2009

Сообщение от romchik77:
В какой школе Вы учились? я бы слово здравствуйте хотя бы написал. Не, ну я понимаю конечно это интернет - язык, но все равно. Читать противно.
Еще раз прошу прощения, обидеть не хотел.

А по теме можеш ответить ? [Ответ]
petrd 15:27 25.12.2009

Сообщение от Denis124:
Да кварц стоит модуляцыя идет но на выходе CCP1 ,CCP2 ничего нет

А почему у Вас в коде компараторы не отключены? У Вас так кнопки на половине PORTA работать не будут. И, кстати, как у Вас кнопки подключены?
Пример от mikroE работает, проверил в железе. [Ответ]
Bard Simpson 22:36 26.12.2009
Вот такая проблема:
программа работает в MPLAB SIM, я это вижу по состоянию регистров и EEPROM.
В PROTEUS происходит следующее: как только я его "включаю" то сразу взводится EECON1:WRERR (ошибка записи в EEPROM), и по адресам куда в дальнейшем должно писаться появляется ерунда. При этом сама программа еще не запускалась.
В "железе" похоже происходит то же самое. [Ответ]
petrd 15:11 27.12.2009

Сообщение от Bard Simpson:
Вот такая проблема:
программа работает в MPLAB SIM, я это вижу по состоянию регистров и EEPROM.
В PROTEUS происходит следующее: как только я его "включаю" то сразу взводится EECON1:WRERR (ошибка записи в EEPROM), и по адресам куда в дальнейшем должно писаться появляется ерунда. При этом сама программа еще не запускалась.
В "железе" похоже происходит то же самое.

Прочитайте, что Вы написали! В ответ на подобное обычно на форумах говорят - "телепаты в отпуске". [Ответ]
Denis124 14:49 08.01.2010
Проблема решена PWM работает в протеусе (мож кому пригодитса )

void main()
{
unsigned char pwm ;

TRISC = 0 ;
PORTC = 0 ;

PR2 = 0b01111100 ;
CCP1CON = 0b00001100 ;
CCP2CON = 0b00111100 ;

for(..)
{

for(pwm = 0 ; pwm < 128 ; pwm++)
{
CCPR1L = pwm ;
CCPR2L = 128 - pwm ;
T2CON = 0b00000101 ;
Delay_ms(10) ;
}
for(pwm = 127 ; pwm > 0 ; pwm--)
{
CCPR1L = pwm ;
CCPR2L = 128 - pwm ;
T2CON = 0b00000101 ;
Delay_ms(10) ;
}
}
}
[Ответ]
_new_ 17:48 18.01.2010
Здравствуйте!

Проблема в следующем: нужно принять по USART 30 байт, сохранить их в EEPROM и передать обратно (для сравнения). Камень - pic16f628a, среда microC. Схема такая же как в файле справке (прикрепить картинку?)

Код:
unsigned short i, j;
Usart_Init(2400);
i = 0;
while (1)
{
  if (Usart_Data_Ready())
  {
    j = Usart_Read();
    Eeprom_Write(i, j);
    Delay_ms(20);
    i++;
  }
  if (i > 29)
  {
    for (i = 0; i < 30; i++)
    {
      j = Eeprom_Read(i);
      Usart_Write(j);
    }
    i = 0;
  }
}
МК не успевает все принимать и сохранять - успевает только первые несколько и последние, середина теряется. Данные передаю файлом через встроенный в microC терминал. Может есть возможность как-то тормозить передачу на время записи в память? Вобщем жду советов. [Ответ]
petrd 08:45 19.01.2010

Сообщение от _new_:
Проблема в следующем: нужно принять по USART 30 байт, сохранить их в EEPROM и передать обратно (для сравнения). Камень - pic16f628a, среда microC. Схема такая же как в файле справке (прикрепить картинку?)
МК не успевает все принимать и сохранять - успевает только первые несколько и последние, середина теряется. Данные передаю файлом через встроенный в microC терминал. Может есть возможность как-то тормозить передачу на время записи в память?

1. Конечно будут потери - процесс записи EEPROM достаточно медленный + по коду задержка 20 мс, а данные из файла идут непрерывно.
2. Вариантов несколько. Первый - принимаемые данные складывать в массив, а после приема всех 30 байт записать их в EEPROM. Второй - использовать аппаратное управление, в частности задействовать CTS/RTS.
P.S. mikroC mikroC mikroC mikroC mikroC [Ответ]
petrd 15:02 06.03.2010
Pickit2 научили шить AVR.
Первоисточник здесь - http://pickit2avrisp.wordpress.com/
И на microchip.su обсуждают. Сам не пробовал, но обязательно попробую. [Ответ]
viktor110668 09:15 07.03.2010
скажите где посмотреть процедуру написания проги на с для работы ацп и индикатора 16х2 [Ответ]
petrd 20:21 07.03.2010

Сообщение от viktor110668:
скажите где посмотреть процедуру написания проги на с для работы ацп и индикатора 16х2

Например, в примерах MikroC, выглядит так:
Код:
/*
 * Project name:
     ADC_on_LCD (Displaying ADC result on LCD)
 * Copyright:
     (c) MikroElektronika, 2005-2008.
 * Description:
     This code demonstrates how to use library function ADC_read, and library
     procedures and functions for LCD display (4 bit interface).
 * Test configuration:
     MCU:             PIC16F887
     Dev.Board:       EasyPIC5
     Oscillator:      HS, 08.0000 MHz
     Ext. Modules:    LCD
     SW:              mikroC v8.0
 * NOTES:
     None.
*/

unsigned char ch;
unsigned int adc_rd;
char *text;
long tlong;

void main() {
  INTCON = 0;                              // disable all interrupts
  ANSEL  = 0x04;                           // Configure AN2 pin as analog input
  TRISA  = 0x04;
  ANSELH = 0;                              // Configure other AN pins as digital I/O
  Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // Lcd_Init_EP5, see Autocomplete
  LCD_Cmd(LCD_CURSOR_OFF);                 // send command to LCD (cursor off)
  LCD_Cmd(LCD_CLEAR);                      // send command  to LCD (clear LCD)

  text = "mikroElektronika";               // assign text to string
  LCD_Out(1,1,text);                       // print string a on LCD, 1st row, 1st column
  text = "LCD example";                    // assign text to string
  LCD_Out(2,1,text);                       // print string a on LCD, 2nd row, 1st column

  ADCON1     = 0x82;                       // configure VDD as Vref, and analog channels
  TRISA      = 0xFF;                       // designate PORTA as input
  Delay_ms(2000);
  text  = "voltage:";                      // assign text to string
  while (1) {
    adc_rd  = ADC_read(2);                 // get ADC value from 2nd channel
    LCD_Out(2,1,text);                     // print string a on LCD, 2nd row, 1st column

    tlong = (long)adc_rd * 5000;           // covert adc reading to milivolts
    tlong = tlong / 1023;                  // 0..1023 -> 0-5000mV

    ch     = tlong / 1000;                 // extract volts digit
    LCD_Chr(2,9,48+ch);                    // write ASCII digit at 2nd row, 9th column
    LCD_Chr_CP('.');

    ch    = (tlong / 100) % 10;            // extract 0.1 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point

    ch    = (tlong / 10) % 10;             // extract 0.01 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point

    ch    = tlong % 10;                    // extract 0.001 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point
    LCD_Chr_CP('V');

    Delay_ms(1);
  }
}//~!
[Ответ]
viktor110668 16:33 08.03.2010
уууура у меня получилось, я забыл написать что для авр микроС
но я перенес куски кода в авр и поменял заглавные буквы и усе заработало , огромнейшее спасибо , для учебной практики в самый раз [Ответ]
viktor110668 05:20 09.03.2010
подскажите пжлста код работы mikroC AVR ацп и графического дисплея 12864 уж сильно хочется вывести синусоиду и поучится выводить символы и разные заставки. [Ответ]
petrd 19:34 09.03.2010

Сообщение от viktor110668:
подскажите пжлста код работы mikroC AVR ацп и графического дисплея 12864 уж сильно хочется вывести синусоиду и поучится выводить символы и разные заставки.

Сначала надо освоить графический ЖКИ, а потом синусоиду выводить ибо синусоида - это обработка, математика и алгоритмы и тут все зависит от знаний и фантазии программиста. Чем выше уровень программиста, тем проще и лучше реализация. Для вывода символов на KS108/KS107 сначала надо осовить встроенную GLCD библиотеку, дальше можно поробовать вот это http://www.pocketmt.com/. А картинки готовить для вывода на KS108/KS107 легко при помощи встроенного GLCD Bitmap Generator'а. В примерах от mikroC коды должны быть. [Ответ]
viktor110668 23:30 09.03.2010

Сообщение от petrd:
Сначала надо освоить графический ЖКИ, а потом синусоиду выводить ибо синусоида - это обработка, математика и алгоритмы и тут все зависит от знаний и фантазии программиста. Чем выше уровень программиста, тем проще и лучше реализация. Для вывода символов на KS108/KS107 сначала надо осовить встроенную GLCD библиотеку, дальше можно поробовать вот это http://www.pocketmt.com/. А картинки готовить для вывода на KS108/KS107 легко при помощи встроенного GLCD Bitmap Generator'а. В примерах от mikroC коды должны быть.

все легче осваивать на примерах наглядно, вот вы мне дали пример работы с
индикатором 16х2 я уже освоил математические методы вычисления значений, и сделал вольтметр омметр со звуковой индикацией и цифровым отображением на дисплее 16х2, я сам автоэлектрик и мне нужен такой приборчик. теперь я хочу своими руками и мозгами достичь других результатов, я тут увидел диагностический приборчик для машин и решил соорудить подобие его но на графическом дисплее
в котором будет осциллограф до 200 кгц(достаточно) волтметр омметр и диагностика систем отечественных авто, схема уже есть , отработана система протокола обмена с авто по кл адаптеру ну тут я размахнулся ( и зайца можно научить курить)
вот я и хочу на конкретных примерах сделать себе помощника(прибор)
кстати я диагностический приборчик сам сделал он на 16х2
и неудобен что читаемость плохая когда нужно посмотреть сразу три режима работы двигателя, еще я сам сделал 4 канальный осциллограф на атмега16 и компьютером через юсб теперь на моём буке есть осцилл. потихоньку развиваемся с вашей и божьей помощью. спасибо тем кто помогает. [Ответ]
petrd 12:04 11.03.2010
Для тех кто работает с AVR - стараниями tester'a RTOS OSA портирована под 8-ми разрядные AVR (IAR и WinAVR) - http://wiki.pic24.ru/doku.php/osa/ref/download/intro [Ответ]
viktor110668 20:32 13.03.2010
посмотриче файлик , я тут написал програмку для графического лсд линию выводит на экран а не так как надо.
Изображения
[Ответ]
petrd 09:58 15.03.2010

Сообщение от viktor110668:
посмотриче файлик , я тут написал програмку для графического лсд линию выводит на экран а не так как надо.

Ничего пока не понятно, словами опишите алгоритм. [Ответ]
viktor110668 11:31 15.03.2010

Сообщение от petrd:
Ничего пока не понятно, словами опишите алгоритм.

я расписал строчки в .с файле
Изображения
[Ответ]
petrd 12:08 15.03.2010

Сообщение от viktor110668:
я расписал строчки в .с файле

Так и тут ничего не понятно.
Код:
unsigned short i;
unsigned int buf[500];
void main() {
  Glcd_Init();            // ????????????? GLCD
  Glcd_Fill(0x00);                        // Clear GLCD

       for (;;){   //while(1) {
           buf[i] = ADC_Read(3);    //чтение с ацп и запись в буфер

           for(i=1;i<10;i++); // формирование графика
               Delay_100ms();//задержка
           for (i=1; i<buf[i]+1; i++)  //?????? ??????
              {
         Glcd_Line(i=1,buf[i],i+90,buf[i+1],1);  //?вывод графика на дисплей
                       };

       Glcd_Fill(0);   //сброс индикатора

          };
}
Что у Вас вот это должно делать?
Код:
 for(i=1;i<10;i++); // формирование графика
Оно же ничего не делает, кроме как увеличивает переменную i, которая в начале следующего цикла
Код:
  for (i=1; i<buf[i]+1; i++)
        Glcd_Line(i=1,buf[i],i+90,buf[i+1],1);
проинициализируется и станет равной 1, а что Вы вот этим i<buf[i]+1 и этим Glcd_Line(i=1... хотели сделать? Ну и еще т.п. [Ответ]
viktor110668 13:11 15.03.2010
i<buf[i]+1 это я из буфера данные выкладываю на график
Glcd_Line(i=1...здесь выводит на дисплей только я сейчас поставил i<1 ничего не изменилось
напишите как надо написать функцию прорисовки графика ато у меня никаких нарабоок нет вот сам шишки и набиваю
хотябы примерчик какой посмотреть [Ответ]
seysen 12:04 26.03.2010
Здравствуйте!
Задумал я делать HID устройство для компьютера. Чую много времени пройдет пока я его реализую, но не в этом дело. Возник у меня вопрос а как подбирать микросхему для своих задач? Есть ли у кого-нибудь опыт работы с USB устройствами?
С уважением, seysen [Ответ]
petrd 15:03 27.03.2010

Сообщение от seysen:
Здравствуйте!
Возник у меня вопрос а как подбирать микросхему для своих задач?

Ну это будет скорее всего микроконтроллер - PIC, AVR и т.д..
1. Если брать PIC, то это однозначно с модулем USB (PIC18, PIC24, PIC32) Low и Full.
2. Можно брать обычный AVR, но тогда будет Low Speed USB (12 МГц), а AVR с модулем USB будет и Low и Full.
Никто Вам точно не скажет как выбирать, можно высказать только свои личные предпочтения, а выбирать все равно Вам. [Ответ]
seysen 20:11 30.03.2010
Ни как не могу найти нечто подобное сводной таблицы по характеристикам микроконтроллеров. Неужели нужно документацию по каждому контроллеру в отдельности просматривать? [Ответ]
petrd 20:40 30.03.2010

Сообщение от seysen:
Ни как не могу найти нечто подобное сводной таблицы по характеристикам микроконтроллеров. Неужели нужно документацию по каждому контроллеру в отдельности просматривать?

По PIC все здесь и online и offline - http://www.microchip.com/stellent/id...cName=en544123 [Ответ]
seysen 20:57 30.03.2010
Спасибо. Только нашел
http://catalog.gaw.ru/index.php?page=components_list если кому вдруг потребуется [Ответ]
Horus 02:16 08.04.2010

Сообщение от seysen:
Здравствуйте!
Задумал я делать HID устройство для компьютера. Чую много времени пройдет пока я его реализую, но не в этом дело. Возник у меня вопрос а как подбирать микросхему для своих задач? Есть ли у кого-нибудь опыт работы с USB устройствами?
С уважением, seysen

А HID - это принципиально или просто нужно девайс по USB подключить? Если просто подключить, то VCP (Virtual COM Port) тебе в помощь т.е. FT232RL + практически любой контроллер. Дешево и сердито [Ответ]
seysen 05:56 08.04.2010

Сообщение от Horus:
А HID - это принципиально или просто нужно девайс по USB подключить? Если просто подключить, то VCP (Virtual COM Port) тебе в помощь т.е. FT232RL + практически любой контроллер. Дешево и сердито

Нужен именно HID. Не хватало мне еще свои дрова писать для контроллера))) [Ответ]
petrd 07:14 08.04.2010

Сообщение от seysen:
Нужен именно HID.

Так еще и не определились? Для PIC здесь можно для знакомства посмотреть http://pickit2.ru/doku.php/проекты:all [Ответ]
seysen 17:51 08.04.2010

Сообщение от petrd:
Так еще и не определились?

Вроде определился. Выбор пал на PIC18F4458 либо PIC18F4553 но пока до конца не уверен. [Ответ]
Страница 15 из 43
« Первая < 59101112131415 16171819202125 > Последняя »
Вверх