Log in

View Full Version : program correction



binary01
- 10th June 2025, 14:43
Hello,
Please someone help me correct the program. I am new to PICBASIC, I found this program on a forum and I can't compile it because there are errors. This program motivated me to continue learning PICBASIC.

'************************************************* ***************
@ device pic12F675, CPD_ON, PROTECT_ON, MCLR_OFF, PWRT_ON, WDT_Off, INTRC_OSC_NOCLKOUT
'************************************************* *
Out1 var PORTA.0
Out2 var PORTA.1
time var word
i var word
j var byte
k var byte
'************************************************* *
trisio = %11111100
CMCON = %00000111 ' Отключаем встроенный компаратор
ANSEL = %00000000 ' Set AN0 analog
adcon0 = %00000000 'АЦП
OPTION_REG.7 = 0
WPU = %00100000 ' Подтягивающие резисторы (автоматически выключаются при установке порта на вывод)
'************************************************* *
gosub ton
'************************************************* *


main:
'******************-1-*****************************
gosub wail3
'******************-2-*****************************
for j = 0 to 10
gosub yelp
next j
'******************-3-*****************************
for k = 0 to 4
gosub Krach2
next k
pause 260
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
'******************-4-*****************************
gosub short_konec
'******************-5-*****************************
for j = 0 to 20
gosub phaser
next j
'******************-6-*****************************
for j = 0 to 30
gosub Krach3
next j
'******************-7-*****************************
for j = 0 to 7
gosub wail2
next j
for k = 0 to 9
gosub Krach2
next k
for j = 0 to 3
gosub wail2
next j
for j = 0 to 15
gosub Krach3
next j
'******************-8-*****************************
gosub short_konec
gosub konec
'******************-9-*****************************
for j = 0 to 20
gosub phaser
next j
'******************-10-****************************
for j = 0 to 30
gosub Krach3
next j
'******************-11-****************************
for j = 0 to 10
gosub hilo
next j
'************************************************* *
Out1 = 0
Out2 = 0
'************************************************* *
goto main


'************************************************* *
'******************* Кряк 2 ***********************
'************************************************* *
Krach2: '*
time = 1000 '*
gosub out '*
time = 700 '*
gosub out '*
time = 600 '*
gosub out '*
time = 500 '*
gosub out '*
time = 400 '*
gosub out '*
time = 300 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 300 '*
gosub out '*
time = 400 '*
gosub out '*
time = 500 '*
gosub out '*
time = 600 '*
gosub out '*
time = 700 '*
gosub out '*
time = 1000 '*
gosub out '*
return '*
'************************************************* *



'************************************************* *
'******************* Кряк 3 ***********************
'************************************************* *
Krach3: '*
time = 1150 '*
gosub out '*
time = 750 '*
gosub out '*
time = 650 '*
gosub out '*
time = 550 '*
gosub out '*
time = 450 '*
gosub out '*
time = 300 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 300 '*
gosub out '*
time = 450 '*
gosub out '*
time = 550 '*
gosub out '*
time = 650 '*
gosub out '*
time = 750 '*
gosub out '*
time = 1150 '*
gosub out '*
return '*
'************************************************* *



'************************************************* *
'******************* Wail_1 ***********************
'************************************************* *
wail1: '*
for i = 1500 to 400 step -1 '*
time = i '*
gosub out '*
next i '*
for i = 400 to 1500 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'******************* Wail_2 ***********************
'************************************************* *
wail2: '*
for i = 1500 to 400 step -8 '*
time = i '*
gosub out '*
next i '*
for i = 400 to 1500 step 8 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'******************* Wail_3 ***********************
'************************************************* *
wail3: '*
for i = 1667 to 556 step -1 '*
time = i '*
gosub out '*
next i '*
for i = 556 to 1667 step 1 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'******************** Yelp ************************
'************************************************* *
yelp: '*
for i = 1000 to 300 step -4 '*
time = i '*
gosub out '*
next i '*
for i = 300 to 1000 step 4 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'******************** phaser **********************
'************************************************* *
phaser: '*
for i = 609 to 238 step -7 '*
time = i '*
gosub out '*
next i '*
for i = 238 to 609 step 7 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *




'************************************************* *
'********************* konec **********************
'************************************************* *
konec: '*
for i = 2000 to 800 step -20 '*
time = i '*
gosub out '*
next i '*
for i = 800 to 4000 step 2 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'**************** short_konec *********************
'************************************************* *
short_konec: '*
for i = 2000 to 600 step -15 '*
time = i '*
gosub out '*
next i '*
for i = 600 to 1500 step 2 '*
time = i '*
gosub out '*
next i '*
for i = 1500 to 600 step -15 '*
time = i '*
gosub out '*
next i '*
for i = 600 to 1800 step 2 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'********************** HiLo **********************
'************************************************* *
HiLo: '*
for i = 0 to 300 '*
time = 400 '*
gosub out3 '*
next i '*
for i = 0 to 300 '*
time = 550 '*
gosub out3 '*
next i '*
return '*
'************************************************* *



'************************************************* *
'*************** Первоначальный тон ***************
'************************************************* *
Ton: '*
time = 850 '*
for i = 0 to 300 '*
gosub out '*
next i '*
return '*
'************************************************* *



'************************************************* *
'**************** Управление колоколом ************
'************************************************* *
Out: '*
Out2 = 0 '*
pauseus 10 '*
Out1 = 1 '*
pauseus time '*
Out1 = 0 '*
pauseus 10 '*
Out2 = 1 '*
pauseus time '*
return '*
'************************************************* *




'************************************************* *
'**************** Управление колоколом ************
'************************************************* *
Out3: '*
Out1 = 0 '*
Out2 = 0 '*
pauseus time '*
Out1 = 1 '*
pauseus time '*
Out1 = 0 '*
pauseus 10 '*
Out2 = 1 '*
pauseus time '*
Out2 = 0 '*
pauseus time '*
return '*
'************************************************* *

richard
- 11th June 2025, 01:45
a pic12f675 has no PORTA


@ device pic12F675, CPD_ON, PROTECT_ON, MCLR_OFF, PWRT_ON, WDT_Off, INTRC_OSC_NOCLKOUT

is an outdated and no longer valid method of setting device config registers

binary01
- 11th June 2025, 07:15
Thanks for the reply. Can you help me correct the errors? Show me what I need to correct.

richard
- 11th June 2025, 10:46
This program motivated me to continue learning PICBASIC.

i gave you two massive clues if you really are using a 12f675, a read of the manual and a search of the forum/pbp manual will yield all you need to know re setting config [fuses]registers and pin usage. a read of the pic12f675 data sheet will reveal even more about the registers used to configure the chip and use the gpio pins.

what have you tried ?
where did the code come from and what do you expect it to do ?
what chip are you using ?
what version of pbp ?

and do read the forum faq and learn how to use code tags


trisio = 111100
CMCON = 000111 ' Отключаем встроенный компаратор
ANSEL = 000000 ' Set AN0 analog
adcon0 = 000000 'АЦП
OPTION_REG.7 = 0
WPU = 100000 ' Подтягивающие резисторы (автоматически выключаются при установке порта на вывод)
'************************************************* *
gosub ton
'************************************************* *




main:
'******************-1-*****************************
gosub wail3
'******************-2-*****************************
for j = 0 to 10
gosub yelp
next j
'******************-3-*****************************
for k = 0 to 4
gosub Krach2
next k
pause 260
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
pause 137
for k = 0 to 5
gosub Krach2
next k
'******************-4-*****************************
gosub short_konec
'******************-5-*****************************
for j = 0 to 20
gosub phaser
next j
'******************-6-*****************************
for j = 0 to 30
gosub Krach3
next j
'******************-7-*****************************
for j = 0 to 7
gosub wail2
next j
for k = 0 to 9
gosub Krach2
next k
for j = 0 to 3
gosub wail2
next j
for j = 0 to 15
gosub Krach3
next j
'******************-8-*****************************
gosub short_konec
gosub konec
'******************-9-*****************************
for j = 0 to 20
gosub phaser
next j
'******************-10-****************************
for j = 0 to 30
gosub Krach3
next j
'******************-11-****************************
for j = 0 to 10
gosub hilo
next j
'************************************************* *
Out1 = 0
Out2 = 0
'************************************************* *
goto main




'************************************************* *
'******************* Кряк 2 ***********************
'************************************************* *
Krach2: '*
time = 1000 '*
gosub out '*
time = 700 '*
gosub out '*
time = 600 '*
gosub out '*
time = 500 '*
gosub out '*
time = 400 '*
gosub out '*
time = 300 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 300 '*
gosub out '*
time = 400 '*
gosub out '*
time = 500 '*
gosub out '*
time = 600 '*
gosub out '*
time = 700 '*
gosub out '*
time = 1000 '*
gosub out '*
return '*
'************************************************* *






'************************************************* *
'******************* Кряк 3 ***********************
'************************************************* *
Krach3: '*
time = 1150 '*
gosub out '*
time = 750 '*
gosub out '*
time = 650 '*
gosub out '*
time = 550 '*
gosub out '*
time = 450 '*
gosub out '*
time = 300 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 250 '*
gosub out '*
time = 300 '*
gosub out '*
time = 450 '*
gosub out '*
time = 550 '*
gosub out '*
time = 650 '*
gosub out '*
time = 750 '*
gosub out '*
time = 1150 '*
gosub out '*
return '*
'************************************************* *






'************************************************* *
'******************* Wail_1 ***********************
'************************************************* *
wail1: '*
for i = 1500 to 400 step -1 '*
time = i '*
gosub out '*
next i '*
for i = 400 to 1500 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'******************* Wail_2 ***********************
'************************************************* *
wail2: '*
for i = 1500 to 400 step -8 '*
time = i '*
gosub out '*
next i '*
for i = 400 to 1500 step 8 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'******************* Wail_3 ***********************
'************************************************* *
wail3: '*
for i = 1667 to 556 step -1 '*
time = i '*
gosub out '*
next i '*
for i = 556 to 1667 step 1 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'******************** Yelp ************************
'************************************************* *
yelp: '*
for i = 1000 to 300 step -4 '*
time = i '*
gosub out '*
next i '*
for i = 300 to 1000 step 4 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'******************** phaser **********************
'************************************************* *
phaser: '*
for i = 609 to 238 step -7 '*
time = i '*
gosub out '*
next i '*
for i = 238 to 609 step 7 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *








'************************************************* *
'********************* konec **********************
'************************************************* *
konec: '*
for i = 2000 to 800 step -20 '*
time = i '*
gosub out '*
next i '*
for i = 800 to 4000 step 2 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'**************** short_konec *********************
'************************************************* *
short_konec: '*
for i = 2000 to 600 step -15 '*
time = i '*
gosub out '*
next i '*
for i = 600 to 1500 step 2 '*
time = i '*
gosub out '*
next i '*
for i = 1500 to 600 step -15 '*
time = i '*
gosub out '*
next i '*
for i = 600 to 1800 step 2 '*
time = i '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'********************** HiLo **********************
'************************************************* *
HiLo: '*
for i = 0 to 300 '*
time = 400 '*
gosub out3 '*
next i '*
for i = 0 to 300 '*
time = 550 '*
gosub out3 '*
next i '*
return '*
'************************************************* *






'************************************************* *
'*************** Первоначальный тон ***************
'************************************************* *
Ton: '*
time = 850 '*
for i = 0 to 300 '*
gosub out '*
next i '*
return '*
'************************************************* *






'************************************************* *
'**************** Управление колоколом ************
'************************************************* *
Out: '*
Out2 = 0 '*
pauseus 10 '*
Out1 = 1 '*
pauseus time '*
Out1 = 0 '*
pauseus 10 '*
Out2 = 1 '*
pauseus time '*
return '*
'************************************************* *








'************************************************* *
'**************** Управление колоколом ************
'************************************************* *
Out3: '*
Out1 = 0 '*
Out2 = 0 '*
pauseus time '*
Out1 = 1 '*
pauseus time '*
Out1 = 0 '*
pauseus 10 '*
Out2 = 1 '*
pauseus time '*
Out2 = 0 '*
pauseus time '*
return '*
'************************************************* *
Quick reply to this messageReply Reply With QuoteReply With Quote Multi-Quote This Message