Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
PIC 16f819 работает очень медленно
Zombie47 Дата: Пт, 11.09.2015, 02:44  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 7
Репутация: 0   ±
Замечания:   ±
На сайте с 30.08.2015

Статус: Offline

Не пойму в чем дело вот код программы:
Код
trisa = %01110011
trisb = %00000000
dig1 var porta.3
dig2 var porta.2
dig3 var porta.7
dig1 = 0  
dig2 = 0
dig3 = 0

Portb = $16

vivod:  
dig1 = 1
pause 10
dig1 = 0
pause 10
dig2 = 1
pause 10
dig2 = 0
pause 10
dig3 = 1
pause 10
dig3 = 0
pause 10
goto vivod
end

Так вот пауза реальная где то 1 секунду.
Если убрать pause ну чуть быстрее но все ровно я вижу как меняются цифры на индикаторе.
С этой же программой в pic 16f628a все ок я не вижу как меняются цифры и горят все три.
Так то я дилетант и мог где то что то упустить. Ну подумал может что то связано с тактовой частотой.
У меня прописано вот это в конфиге:

Код
__config _INTRC_IO & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFF & _MCLR_OFF
 
вроде как и положено врублен внутренний генератор командой _INTRC_IO

Добавлено (11.09.2015, 02:44)
---------------------------------------------
проверил если убрать pause то все нормально, но вот в этой проге убрал паузу но все ровно я вижу как меняются числа где то раз в пол секунды, тоесть очень долго. 
Где я накосячил?
'6-e RB0
'7-c RB1
'8-dp RB2
'9-d RB3
'10-f RB4
'11-a RB5
'12-g RB6
'13-b RB7

' RA3 dig1
' RA2 dig2
' RA7 dig3

' RA6 вход с датчика сигнал

' 0- $44, 1- $7D, $16, $15, $2D, $85, $84, $5D, $04, $05
Define adc_bits 8
Define ADC_CLOCK 3
Define ADC_SAMPLEUS 50
tempval var byte
LED var portb
dig1 var porta.3
dig2 var porta.2
dig3 var porta.7
dp var portb.2
Temp VAR word
i var byte 'номер горящего индикатора от 0 до 2
n var byte '
warning var porta.1

dig1 = 0 '1 это плюс на RA3 dig1
dig2 = 0 '1 это плюс на RA2 dig2
dig3 = 0 '1 это плюс на RA7 dig3

Init:
trisa = %01110011 'RA7 вых,RA6 вх,RA5 вх,RA4 вх,RA3 вых,RA2 вых,RA1 вх,RA0 вх
trisb = %00000000 'все выходы
ADCON1=%00000010 'RA1 сделал аналогвым входом

vivod:   'вывод значения Temp на экран
adcin 0, tempval
for i = 0 to 2
n = temp dig i
dig1 = 0 '1 это плюс на RA3 dig1
dig2 = 0 '1 это плюс на RA2 dig2
dig3 = 0 '1 это плюс на RA7 dig3
gosub Convrt
if i = 0 then
dig3 = 1
endif
if i = 1 then
dig2 = 1
endif
if i = 2 then
dig1 = 1
endif
'Temp = 168/10
Temp = (6 * tempval - 156)/10
next i
goto vivod
Convrt:
lookup n, [$44,$7D,$16,$15,$2D,$85,$84,$5D,$04,$05], Led
return
end

ЯНДЕКС Дата: 11.09.2015
anatol Дата: Пт, 11.09.2015, 10:22  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Zombie47, во первых какой процессор вы применяете. Во вторых какая частота для этого процессора по умолчанию?
Zombie47 Дата: Пт, 11.09.2015, 22:15  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 7
Репутация: 0   ±
Замечания:   ±
На сайте с 30.08.2015

Статус: Offline

Процессор это микроконтроллер?=) pif 16f819
остальное все что есть в проге указал тут
частота вроде 4mhz по умолчанию но такое ощущение что стоит 1hz =)))

Добавлено (11.09.2015, 20:31)
---------------------------------------------
Дописал в программу Define  OSC     4
ниче не изменилось

Добавлено (11.09.2015, 22:15)
---------------------------------------------
Разобрался дописал в программу OSCCON = %01100100 
и все заработало как надо.

anatol Дата: Пн, 14.09.2015, 10:54  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Отлично что сам разобрался, запомнится надолго.
  • Страница 1 из 1
  • 1
Поиск: