Здравствуйте! Подскажите пожалуйста! Написана прога в picBasic pro. Комилирую, заливаю, запускаю в режиме IDE всё работает! Удаляю строку define loader_used 1, комлирую, заливаю через программатор (Ponyprog) hex файл, запускаю - не работает! Такое впечатление, что весит или что-то с кварцем.
Кварц 20.000 МГц, конденсаторы стояли 15 пФ, переставил на 30 пФ - результат тот же. Дело в том, что стоял кварц 4 МГц и все работало отлично. но захотелось работать в IDE, поэтому и перепаял кварц.
Решил опять напаять 4 МГц, при этом строку "define osc 20" удоляю, компелирую, заливаю, включаю - работает! Камень использую 16а877-20, в даташите написано, что он работает на этой частоте. Подскажите пожалуйста как быть.
вот пример украденной проги:
define loader_used 1
define osc 20
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50 ' LCD ima dva reda karaktera
symbol DQ = PORTB.2 ' Dq linija je povez. na pin RC2 temperatura Var Word ' Promen.za cuvanje izmer. temp.
count_remain Var Byte ' Ostatak takta
count_per_c Var Byte ' Takt po stepenu C
' PORTA i PORTE su digitalni
pause 100 ' Pauza za start LCD-a
Main:
OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Cekaj: OWIn DQ, 4, [count_remain] ' Provera da li jos traje
If count_remain = 0 Then Cekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj izmerenu temperaturu
OWIn DQ, 0, [temperatura.LOWBYTE, temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
' Prikazi temperaturu u DEC obliku
temperatura = (((temperatura >> 1) * 100) - 25) + (((count_per_c - count_remain) * 100) / count_per_c)
Lcdout $fe, 1, $54, $65, $BC, $BE, $65, $70, $61, $BF, $79, $70, $61
Lcdout $fe, $C0, DEC (temperatura / 1000), ".", DEC2 temperatura, " C"
Pause 1000 ' Meri svakih sekund
Goto Main ' Ponovi sve
End ' Kraj programa
Заранее спасибо!