Hallo Leute:
Anfang:
Port RA0 bekommt poti (10k) wert von 0-5V
daraus wird pwm tastverhältnis von 0-100%

Jetzt habe ich das ganze modifiziert für ein poti, was 0-500Ohm hat (sitzheizungsreglerpoti,nicht austauschbar wegen optik),
also habe ich einen 1k widerstand dazugesetzt, damit der stromfluß durchs poti nicht so hoch wird. (5v:1000ohm=0,005A= maximal 5mA =>maximal 0,025Watt)
(Zur Ergänzung: das Poti hat keinen mittenabgriff,nur 2 kontakte)

[+5v]
I
I
[R=1k]
I
I---------------[R=1k]----RA0/IC Eingang
I
[Poti,0-500Ohm]
I
I
[GND]

Ich gebe also per poti einen wert an RA0 ein, der maximal 1/3 von 5V ist
(spannungsteiler), minimal 0V.

Um das gleiche ergebnis zu haben, muß ich den wert also verdreifachen

Ist der Code so korrekt, dass er den Wert ausliest,
dann 2 mal mit dem selben wert addiert, und dann weitergibt ans PWM ?
-Damit soll er wieder die maximalen 5V=100% PWM machen
Code:
Code:
;Eingangsspannung wandeln
	BSF	ADCON0, 2	; ADC starten
loop2
	BTFSC	ADCON0, 2	; ist der ADC fertig?
	GOTO	loop2		; nein, weiter warten

;Eingangsspannung in work laden
movfw	ADRESH	; wert auslesen
addwf	ADRESH,0	; wert verdoppelt, in work speichern
addwf	ADRESH,0	; wert verdreifacht, in work gespeichert

; Wert an PWM2 übergeben
	MOVWF	CCPR2L		; obere 8 Bit sind PWM
Passt das so?
Multiplizieren direkt geht ja net..
Hoffe ich hab das richtig zusammengebaut..
(funkioniert!)
Dankeschön!
Gute Woche noch!

#########################################

EDIT:
Versuch macht kluch!
also das verdreifachen scheint zu funktionieren.. nur leider passiert genau meine befürchtung:
geht damit über 5V raus, und wieder auf knapp über 0V -was nun ?
irgendwas mit dem flag.. hm mal schaun..
(erledigt)
edit2: so wieder 40minuten später..ich denke ich habs hingekriegt..
erst hat der assembler rumgemault, weil ich Status statt STATUS geschrieben hatte.. da sucht man ewig..

Code ist jetzt:

Code:
;Eingangsspannung wandeln
	BSF	ADCON0, 2	; ADC starten
loop2
	BTFSC	ADCON0, 2	; ist der ADC fertig?
	GOTO	loop2		; nein, weiter warten

;Eingangsspannung in work laden
	BCF	STATUS,C	; Carry Flag auf 0
	movfw	ADRESH 	; wert auslesen	
	addwf	ADRESH,0	; wert verdoppelt
	addwf	ADRESH,0	; wert verdreifacht
	btfsc	STATUS,C	; wenn carry flag gesetzt, 
	movlw	D'255'	; dann: wert auf maximum setzen=255=5V=100%
						; sonst normal weiter
; Wert an PWM2 übergeben
	MOVWF	CCPR2L		; obere 8 Bit sind PWM
damit sollte die toleranz erschlagen sein, so kann ich ja bis 2,5V einlesen, ohne das es wieder auf 0% pwm geht.

hmm..
Schön wenn man was selber hinkriegt.
################################################

Zurück zum anderen "Problem"
-wie kann ich denn bei Endwerten von sagen wer mal 230 bis 255 auf dauer "high" setzen, ohne pwm? Damit die Verlustleistung am mosfet durchs schalten wegfällt? (immer an)

-wie geht das bei Endwerten von 0-25, dass er ganz abschaltet = dauernd low, ohne pwm..? (immer aus)

Danke fürs zuhören
wopps-jetzt aber ab ins Bettchen..