Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: У кого живой mplab помогите!

Сб июл 23, 2011 03:59:04

Мда... Никто так и не захотел помочь. Придется переустановить винду и самому все сделать :(

Re: У кого живой mplab помогите!

Сб июл 23, 2011 08:35:57

это микроси . Не МСС18, не хайтек. Этим компилятором мало кто пользуется.

Re: У кого живой mplab помогите!

Сб июл 23, 2011 09:09:11

Тема закрыта. Переустановил винду, поставил мп-лаб и компилятор и все сделал сам.

Re: PIC12f629 + MPLAB + ISIS - проблема с выводом

Вс июл 24, 2011 10:41:16

вобщем вот проект разбирайтесь.
Вложения
12f629.rar
(13.5 KiB) Скачиваний: 225

Re: PIC12f629 + MPLAB + ISIS - проблема с выводом

Пн июл 25, 2011 10:58:46

Ser60 писал(а):не хватает строчки ANSEL = 0;
Не вводите людей в заблуждение. Прежде чем такие вещи писать, почитайте ДШ повнимательнее.

Re: PIC12f629 + MPLAB + ISIS - проблема с выводом

Пн июл 25, 2011 12:32:20

Аlex писал(а):
Ser60 писал(а):не хватает строчки ANSEL = 0;
Не вводите людей в заблуждение. Прежде чем такие вещи писать, почитайте ДШ повнимательнее.


вот эта строчка в 60-ой строчке.
Код:
clrf          ANSEL             ; Настройка вывода как цифровой канал порта ввода/вывода


единственное что я накасячил это в самой верхней строчке прописал
Код:
LIST        p=16F876A           ; PIC16F876A.

в товремя как надо
Код:
LIST        p=12F629          ; PIC12F629.

но на суть это не влияет так как проект создан под 12F629, желательно конечно прописывать правельно.

Re: PIC12f629 + MPLAB + ISIS - проблема с выводом

Пн июл 25, 2011 15:43:44

Аlex писал(а):
Ser60 писал(а):не хватает строчки ANSEL = 0;
Не вводите людей в заблуждение. Прежде чем такие вещи писать, почитайте ДШ повнимательнее.

Согласен и извиняюсь за дезу. У 629-го нет ADC и ANSEL для него не имеет смысла. ANSEL имеет смысл для старшего брата 629-го - 12F675.

Как слепить в эдиное целое MPLAB+CCS+PROTEUS

Вт авг 16, 2011 21:20:26

суть вопроса в том что немогу в ПРОТЕУСЕ следить за даними(переменими и регистрами) в програме невозможна както соединит ети пакети в нете эсть но для болие старой версии а мне нужно для етих:
MPLAB 8.73
CCS 4.12
PROTEUS 7.6
Что порадите.

MPLAB v8.36 C++ 16F887

Пт сен 23, 2011 23:18:38

Добрый всем день или вечер.

Начал изучать программирование сабж контроллера.
Светодиодики мигают все прикольно, дисплей работает.
Вот докопался до сом порта и никак ничего не входит, может кто разбирался??
Как например в гипертерминал передать с контроллера какие то слова хотя бы..
Я без эмулятора сом подключился к ком1 напрямую к компу. Там есть проги примеры, ну никак не пашет.

Re: MPLAB v8.36 C++ 16F887

Пт сен 23, 2011 23:48:57

Надо было хотя-бы драйвер между ними поставить.

Re: MPLAB v8.36 C++ 16F887

Сб сен 24, 2011 09:56:20

На чем пишешь Си или асм? О каких примерах идет речь.
И как именно ты на прямую к СОМ1 подключаешь? Преобразователь уровней стоит?

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 17:42:04

Да я чего то все так быстренько ляпнул не рассказав толком.

В общем купил я отладочную плату, думал задушусь от жабы, денег падла стоит жуть.
Ну так один раз и на долго, и все на ней удобно.

Изображение

Вот такой комплект.

На диске давали кучу примеров, я все примеры сперва попробовал, некоторые вообще не понимаю что делают.
Начал свое делать. В общем начало получатся. Пока синтаксис и функции я не запомнил я по примерам как конструктором пользуюсь.
Комилятор Hi-tech Pro C. Херен его знает что это, похож на C++. Примеры все под этот компилятор.

Вот например прога которая какую ту хрень передает на гитерперминал.

Код:
#include <pic.h>   // Include header file for MCU
#define _XTAL_FREQ   20000000   // Define Frequency 20.0 MHz for function __delay_ms
__CONFIG(HS & WDTDIS & LVPDIS);   // Config. High speed clock,Disable watchdog and Disable LVP
void Delay_ms(unsigned int tick)
{
     while(tick--)   // Loop couter delay time
     {
      __delay_ms(1);   // Delay 1 ms
     }     
}
void usart_init()
{`
   // Set buadrate 9600 bps
   SYNC = 0;
   BRGH = 0;
   BRG16 = 1;    
   SPBRG = 0x08;
   SPBRGH = 0x02;
   TXEN = 1;   // Enable transmition
   CREN = 1;   // Enable reciption
   SPEN = 1;   // Enable USART transmition/reciption
}
void usart_putc(unsigned char c)
{
   while(!TRMT);   // Wait transmition ready
   TXREG = c;      // Send byte
}
void usart_puts(unsigned char *s)
{
   while(*s)   // Loop for send string
   {
      usart_putc(*s++);   // Send byte from string
   }
}
unsigned char usart_getc()
{
   while(!RCIF);   // Wait data reciption
   return(RCREG);   // Return data
}
void main()
{
   unsigned char key;   // Keep data reciption from keyboard
   usart_init();   // Initial USART baudrate 9600 bps
   usart_puts("Press keyboard for test Echo!\r\n");  // Display first message
   while(1)   // Infinite loop
   {
      key = usart_getc();   // Wait until data reciption
      // Echo message
      usart_puts("You press key:");   
      usart_putc(key);
      usart_puts("\r\n");
   }
}


Нихрена не пашет.
Max232 стоит. Подключна к 16f887, к выводам RC6, RC7.
Порт в компе без эмулятора, напрямую СОМ1.

Но странная штука, замыкаю контакты 2 и 3 на компе, обратка не идет.. Хрень. Как сом на компе проверить. Да и на эмуляторе USB - COM коротил, таже хрень.

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 18:06:03

Код:
#include <pic.h>   // Include header file for MCU
#define _XTAL_FREQ   20000000   // Define Frequency 20.0 MHz for function __delay_ms
__CONFIG(HS & WDTDIS & LVPDIS);   // Config. High speed clock,Disable watchdog and Disable LVP

#define serial_error()        OERR
#define nostop()              FERR
#define serial_fix()        {CREN = 0; CREN = 1;}
#define vbod 9600
#define SPBRG_ ((_XTAL_FREQ /vbod) -16)/16
//
void usart_init(void);
void usart_putc(unsigned char c);
void usart_puts(unsigned char *s);
//

volatile unsigned char RC_REG;
static bit read_;
//
interrupt void intr(void)
{
if (RCIF && RCIE)
    {
    if(serial_error()) serial_fix(); // переполнение буфера
    if (nostop()) {RCREG;} // пропуск стопового
     else
   {
   RC_REG =RC;
   read_=1;      
    }
}

 //----------
void usart_init()
{
   PIR1 = 0;
   PEIE = 1;   /* разрешаем прерывания периферии */
   SPEN=1;//разрешение работы последовательного порта
   SYNC =0;//включение асинхронного режима работы
   TX9=0; // выбираем 8 - битовую передачу
   RX9=0; // выбираем 8 - битовый прием
   BRGH =1;//включаем высокоскоростной режим
   SPBRG=SPBRG_;// устанавливаем скорость обмена   
   TXEN=1;// не люблю я ножек в 3 состоянии....
   TXIE=0;//запрещаем прерывания от передатчика
   CREN =1;
   // разрешаем прерывания от приемника
   RCIE=1;
   GIE = 1;// разрешаем прерывания
}
//----------
void usart_putc(unsigned char c)
{
   while(!TRMT);   // Wait transmition ready
   TXREG = c;      // Send byte
}
//----------
void usart_puts(unsigned char *s)
{
   while(*s)   // Loop for send string
   {
      usart_putc(*s++);   // Send byte from string
   }
}
 //----------
void main()
{
   usart_init();   // Initial USART baudrate 9600 bps
   usart_puts("Press keyboard for test Echo!\r\n");  // Display first message
   while(1)   // Infinite loop
   {
      if(read_)
   {
   read_=0;
        usart_putc(RC_REG);
   }
   }
}
//----------

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 18:25:58

Ком эхо дает..

Пытался скомпильнуть ругается сабако!



Build D:\PICProgramming\mplab\project\COM\testcom for device 16F887
Using driver C:\Program Files\HI-TECH Software\PICC\PRO\9.65\bin\picc.exe

Make: The target "D:\PICProgramming\mplab\project\COM\testcom.p1" is up to date.
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.65\bin\picc.exe" -otestcom.cof -mtestcom.map --summary=default --output=default testcom.p1 --chip=16F887 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
HI-TECH C PRO for the PIC10/12/16 MCU family (Lite) V9.65PL1
Copyright (C) 1984-2009 HI-TECH SOFTWARE
(1273) Omniscient Code Generation not available in Lite mode (warning)
Error [499] ; 0. undefined symbol:
_usart_init(testcom.obj)


********** Build failed! *****


И вообще что эта программа то делать должна???

Где тут в коде отправка и передача?
Я конечно примерно понял, но пока прога не работает могу ошибаться.

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 18:41:42

да, я в прерывании с скобками просчитался.
Прилагаю исправленный проект.
Вложения
887.zip
(54.65 KiB) Скачиваний: 216

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 18:59:08

Не работает усе равно.
Че я могу не так делать? Ком рабочий точно..
Используется только TX, RX, GND через max232.
Максимка подключена правильно. Нифига не понимаю.

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 19:06:42

гипертерминал настроен правильно ?
9600, 8, нет, 1 - аппаратное управление потоком - выключено.
импульсы на выходе макса видите ? в момент включения идет выдача строки.

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 19:10:57

Может светодиоды к Tx, Rx подключить через ключик для контроля? Хоть видно что где проскакивает??

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 19:13:04

C pic ничего не идет, все молчит и tx и rx.

Re: MPLAB v8.36 C++ 16F887

Вс сен 25, 2011 19:14:08

достаточно тестера - в момент сброса мк - должен выход макса дернуться.
Ответить