Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
15.03.2006, 23:38
|
|
maxNTF
Гость
|
Помогите с PICC
Такая вот проблема
Есть у меня прога на асме
Код:
|
;************************************************* ******
org 0x00 ;Вектор сброса
goto start ;Идём на старт
;************************************************* ******
org 0x04 ;Вектро прерывания
Init_rs232
clrf RCSTA ;Очищаем регистр управления и статуса приёмника
bsf STATUS,RP0 ;Выбираем банк 1
clrf TXSTA ;Очищаем регистр управления и статуса передатчика
movlw d'12' ;Устанавливаем скорость передачи
movwf SPBRG;
movlw b'00100100'; brgh =0, Восьмибитная передача
movwf TXSTA;
;------------------------------------------------------------------------------
movlw b'11000000' ;Разрешение прерывания
movwf INTCON ; общего и аппаратного
bsf PIE1,RCIE ;Разрешаем прерывание по RS232
;----------------------------------------------------------------------------;
bcf STATUS,RP0 ;
movlw b'10000000' ; 8-ми битный приём, разрешён одиночный приём.
movwf RCSTA;
return ;Выходим
start
call Init_rs232
BCF STATUS,RP0 ;Выбор банка 0
CLRF PORTA ;Очистить регистр PORTOUT
MOVLW 7
MOVWF CMCON ; CMCON=7 Выключаем компараторы
bsf STATUS,RP0 ;Выбор первого банка ОЗУ
movlw b'00000000'
movwf TRISA
movlw b'00100110'
movwf TRISB
clrf STATUS
;************************************************* **************
temp1
btfsc PORTB,5
goto temp1
atd
movlw h'41' ; ATD›SM1; -вызов номера 1 из SIM
call SendByte
movlw h'54'
call SendByte
movlw h'44'
call SendByte
movlw h'3e'
call SendByte
movlw h'53'
call SendByte
movlw h'4d'
call SendByte
movlw h'31'
call SendByte
movlw h'3b'
call SendByte
movlw h'0d'
call SendByte
temp2
btfss PORTB,5
goto temp2
goto temp1
SendByte
btfss PIR1,TXIF
goto SendByte
movwf TXREG
return
end |
Переписал ее на Си (У меня PICC-Lite v9.50)
Код:
|
#include ‹pic.h›
#include "main.h"
main()
{
Init_usart();
Init_main();
for(;;)
{
if(RB5==0)
{
SendAT_command();
}
}
}
void Init_usart()
{
RCSTA=0b10000000;
TXSTA=0b00100100;
SPBRG=12;
INTCON=0b11000000;
RCIE=1;
RP0=0;
return;
}
void Init_main()
{
PORTA=0x00;
CMCON=0b00000111;
TRISA=0x00;
TRISB=0b00100110;
STATUS=0x00;
return;
}
void SendAT_command()
{
//char dial1[9]={'A', 'T', 'D', '›', 'S', 'M', '1', ';', '\n'};
int dial1[9]={0x41,0x54,0x44,0x3e,0x53,0x4d,0x31,0x3b,0x0d};
int i;
for(i=0;i‹9;i++)
{
for(;;)
{
if(TXIF==1) break;
}
TXREG=dial1[i];
}
for(;;)
{
if(RB5==1) break;
}
return;
} |
С первой, все работает как надо, а вот со второй проблемы.
Когда ставлю пик в устройство ни чего не передается, на выходе TX даже нет напруги.
Есть у меня симулятор для пиков (picsimulatoride) в нем обе работают одинаково. Когда первый раз компилировал прогу через MPLAB вылезла ошибка типа (чип 16F628A не объявлен в файле picc-lite.ini). Посмотрел я в доке к компилу, вроде этот пик поддерживается. Похоже, что он аналогичен 16F627A, ну я просто скопировал и поменял названия. Все скомпилировалось без ошибок, а не пашет.
ЧЕ ДЕЛАТЬ?
|
|
|
|
17.03.2006, 00:52
|
|
maxNTF
Гость
|
Все ясно пока ждал ответа, сам разобрался.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
CCS PICC
|
dosikus |
Микроконтроллеры, АЦП, память и т.д |
30 |
16.10.2009 20:22 |
CCS PICC 4.088
|
dosikus |
Микроконтроллеры, АЦП, память и т.д |
12 |
19.06.2009 21:23 |
Помогите связать MpLab и PICC
|
TimeOut |
Proteus, KiCAD и другие ECAD |
0 |
25.07.2007 22:01 |
CCS-PICC и EEPROM
|
double_dash |
Микроконтроллеры, АЦП, память и т.д |
1 |
22.04.2007 01:57 |
о CCS-PICC
|
double_dash |
Proteus, KiCAD и другие ECAD |
1 |
02.03.2007 23:19 |
Часовой пояс GMT +4, время: 16:06.
|
|