16f628 conosc interno in picbasic

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
simolella
Newbie
Newbie
Messaggi: 8
Iscritto il: giovedì 29 marzo 2007, 21:21

16f628 conosc interno in picbasic

Messaggio da simolella » martedì 15 maggio 2007, 7:13

salve a tutti. Ho realizzato questo semplice codice per far lavorare motori passo passo. Ma non riesco a farlo funzionare usando losc interno del 16f628. In pratica se monto il pic nella configurazione con osc esterno, con il quarzo e la resistenza mcrl ( XT_OSC e MCLR_ON) funziona benissimo. Se non metto la resistenza e toglo il quarzo con i condensatori per (INTRC_OSC_NOCLKOUT MCLR_On) non funziona niente.. grazie a tutti

@ DEVICE pic16F628a, INTRC_OSC_NOCLKOUT
' System Clock Options
@ DEVICE pic16f628a, WDT_On
' Watchdog Timer
@ DEVICE pic16F628a, PWRT_ON
' Power-On Timer
@ DEVICE pic16F628a, BOD_OFF
' Brown-Out Detect
@ DEVICE pic16F628a, MCLR_Off
' Master Clear Options (External)
@ DEVICE pic16F628a, LVP_OFF
' Low-Voltage Programming
@ DEVICE pic16F628a, CPD_OFF
' Data Memory Code Protect
@ DEVICE pic16F628a, PROTECT_OFF



'setto le porte
CMCON= 7
TRISB = 0
input PORTA.1
INPUT PORTA.3
OUTPUT PORTA.2
'definisco le variabili
vel var byte ' velocità  motore
temp2 var byte
TEMP3 VAR BYTE
B0 var byte
CLK VAR PORTA.3

STEPS VAR WORD
STEPARRAY VAR BYTE (4)
pause 1000
HIGH PORTA.2

steparray[0]=%00001010
steparray[1]=%00000110
steparray[2]=%00000101
steparray[3]=%00001001
'***************
loop:

IF CLK THEN
if PORTA.1 = 0 then
steps=steps+1
else
steps=steps-1
ENDIF
PORTB = STEPARRAY[steps//4]
ENDIF

While CLK=0:Wend
goto loop

Rispondi

Torna a “Elettronica CNC”