P
piersuk
Guest
Sono riuscito a risolvere il PWM per un piccolo motore di controllo,
il codice allegato.
How can I now control the voltage using RS232?
1
Come faccio a controllare la tensione utilizzando RS232?Ho un convertitore TTL pronto.Penso che quello che ho bisogno di modifiche al codice e, speriamo, una sorta di VB app per il controllo del motore.
In addition, how easy is it to add a switch which when pushed will make the PWM output a desired value, say 01FH and then when pushed again will return to loop?
2
Inoltre, come è facile aggiungere un interruttore che, se spinto farà il PWM output di un valore desiderato,
per esempio 01FH e poi nuovamente spinto quando tornerà a loop?
Codice:
ELENCO P = PIC16F628A, r = esadecimale, f = INHX8MINCLUDE "p16f628a.inc"__CONFIG 3909H;********* Programma inizia proprio qui ************************************ *cblock 0x20
d1
d2
d3
endcORG 00H; reset del vettore
GOTO STARTORG 010HINIZIO
; Questi 3 linee di impostare il periodo del pulsante (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Rendere tutte le porte uscite (solo B1 è utilizzato)
CLRF TRISB
BCF STATUS, RP0; Configurare come modalità PWM
MOVLW B'00001100 '
MOVWF CCP1CON
clrf CCPR1L
BSF T2CON, TMR2ON; e avviare il timer in esecuzioneLoop
; Il valore di CCPRIL imposta il ciclo e quindi la tensione
MOVLW 01AH; dà 2,52 V
MOVWF CCPR1L
Scadenza bandoMOVLW 01CH; dà 3,8 V
MOVWF CCPR1L
Scadenza bandoMOVLW 014H; dà 2,52 V
MOVWF CCPR1L
Scadenza bandoMOVLW 01FH; dà 3,8 V
MOVWF CCPR1L
Scadenza bandoMOVLW 018H; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01AH; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01CH; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01FH; dà?
MOVWF CCPR1L
Scadenza bandogoto Loop; 05 secondiRitardoMOVLW 0x03
MOVWF d1
MOVLW 0x18
MOVWF d2
MOVLW 0x02
MOVWF d3
Delay_0
DECFSZ d1, f
GOTO $ 2
DECFSZ d2, f
GOTO $ 2
DECFSZ d3, f
GOTO Delay_0GOTO $ 1RETURNFINE
il codice allegato.
How can I now control the voltage using RS232?
1
Come faccio a controllare la tensione utilizzando RS232?Ho un convertitore TTL pronto.Penso che quello che ho bisogno di modifiche al codice e, speriamo, una sorta di VB app per il controllo del motore.
In addition, how easy is it to add a switch which when pushed will make the PWM output a desired value, say 01FH and then when pushed again will return to loop?
2
Inoltre, come è facile aggiungere un interruttore che, se spinto farà il PWM output di un valore desiderato,
per esempio 01FH e poi nuovamente spinto quando tornerà a loop?
Codice:
ELENCO P = PIC16F628A, r = esadecimale, f = INHX8MINCLUDE "p16f628a.inc"__CONFIG 3909H;********* Programma inizia proprio qui ************************************ *cblock 0x20
d1
d2
d3
endcORG 00H; reset del vettore
GOTO STARTORG 010HINIZIO
; Questi 3 linee di impostare il periodo del pulsante (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Rendere tutte le porte uscite (solo B1 è utilizzato)
CLRF TRISB
BCF STATUS, RP0; Configurare come modalità PWM
MOVLW B'00001100 '
MOVWF CCP1CON
clrf CCPR1L
BSF T2CON, TMR2ON; e avviare il timer in esecuzioneLoop
; Il valore di CCPRIL imposta il ciclo e quindi la tensione
MOVLW 01AH; dà 2,52 V
MOVWF CCPR1L
Scadenza bandoMOVLW 01CH; dà 3,8 V
MOVWF CCPR1L
Scadenza bandoMOVLW 014H; dà 2,52 V
MOVWF CCPR1L
Scadenza bandoMOVLW 01FH; dà 3,8 V
MOVWF CCPR1L
Scadenza bandoMOVLW 018H; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01AH; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01CH; dà?
MOVWF CCPR1L
Scadenza bandoMOVLW 01FH; dà?
MOVWF CCPR1L
Scadenza bandogoto Loop; 05 secondiRitardoMOVLW 0x03
MOVWF d1
MOVLW 0x18
MOVWF d2
MOVLW 0x02
MOVWF d3
Delay_0
DECFSZ d1, f
GOTO $ 2
DECFSZ d2, f
GOTO $ 2
DECFSZ d3, f
GOTO Delay_0GOTO $ 1RETURNFINE