Malc,
it's little bit more than rem ADCIN line. i'll place all the changes i made in RED
Code:
@ __CONFIG _HS_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_OFF
ANSEL = %00010111 ; - dt suggested value
DEFINE OSC 20
CMCON=7
TRISA=%11111111 'set PORTA as all input
TRISC=%00000001 'set PORTC as all output apart from RC0
DEFINE ADC_BITS 8 ' ADCIN resolution (Bits)
DEFINE ADC_CLOCK 2 ' ADC clock source (Fosc/32)
DEFINE ADC_SAMPLEUS 11 ' ADC sampling time (uSec)
INCLUDE "DT_INTS-14.bas" ; Base Interrupt System
INCLUDE "SPWM_INT.bas" ; Software PWM module
DEFINE SPWM_FREQ 150 ; SPWM Frequency
DEFINE SPWM_RES 255 ; SPWM Resolution
DutyVar VAR byte[4]
ASM
SPWM_LIST macro ; Define Pin's to use for SPWM
SPWM_PIN PORTC, 2, _DutyVar ; and the associated DutyCycle variables
SPWM_PIN PORTC, 5, _DutyVar+1 ; Notice the underscore before variables
SPWM_PIN PORTC, 4, _DutyVar+2
SPWM_PIN PORTC, 3, _DutyVar+3
endm
SPWM_INIT SPWM_LIST ; Initialize the Pins
ENDASM
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1_INT, SPWMhandler, ASM, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
@ INT_ENABLE TMR1_INT ; enable Timer 1 interrupts
;_____________________________________________________________________________
Main:
ADCIN 0, DUTYVAR[0]
ADCIN 1, DUTYVAR[1]
ADCIN 2, DUTYVAR[2]
ADCIN 4, DUTYVAR[3]
GOTO Main
Now for the noise, to me, as i'm not a motor pro, there's something normal in that. Your motor have a comfort zone in which he can operate. So if you're under that (let's call it threshold, lower possible voltage or else), for sure he will yell. It has to fight the inertia.. (OK OK probably not the right term... but it's how i understand
)
Now, is this louder using PWM or not? this is why i asked for a variable supply before.
If it's better, we could still redesign the whole thing... same thing if you find a PWM frequency which reduce the noise.
Time for few tests on your side... even if you use few battery in serie
Bookmarks