Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

christoph.graf

RCLine User

  • »christoph.graf« ist der Autor dieses Themas

Wohnort: Schweiz, Region Genf

Beruf: Networking Engineer

  • Nachricht senden

1

Sonntag, 10. April 2005, 21:47

Suche jemand mit Assemblerkenntnis für PIC12F675

Hallo

Ich suche jemand mit Assemblerkenntissen auf dem obengenannten PIC Prozessor. Es geht um eine kleine Softwareanpassung, und ich beherrsche Assembler zu wenig
Im Detail geht es daraum, einen Port auf High zu setzen bei einer bestimmten Potiposition an einem Analoginput...
Für einen Spezi ein paar Minuten, denke ich...


Hat jemand Bock ?

Gruss Christoph
In a world without walls and fences, who needs windows and gates ?

2

Sonntag, 10. April 2005, 23:20

Hallo Christoph,

ich kann Dir mít Deinem Problem zwar nicht unmittelbar helfen, aber hier solltest Du in jedem Fall Unterstützung finden:

Roboternetz

Im dortigen Forum gibt es eine Rubrik für die PIC-Prozessoren, da kann Dir sicher jemand weiterhelfen.

Viele Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Torsten_G« (10. April 2005, 23:21)


cord

RCLine User

Wohnort: Oyten

  • Nachricht senden

3

Montag, 11. April 2005, 00:14

Schick doch mal per PN die Sourcen.
Kanns mir ja mal anschauen...

Gruss
Cord

4

Montag, 11. April 2005, 00:54

RE: Suche jemand mit Assemblerkenntnis für PIC12F675

Ja, der 12f675 ist auch mein bevorzugtes Opfer, wenn du willst kannst du mir auch die Sourcen schicken per mail an andix ät giga punkt at.

christoph.graf

RCLine User

  • »christoph.graf« ist der Autor dieses Themas

Wohnort: Schweiz, Region Genf

Beruf: Networking Engineer

  • Nachricht senden

5

Montag, 11. April 2005, 23:09

So eine Sch....

Da das Ding sowieso nicht läuft kann ich es auch hier posten... vielleicht sieht jemand den Fehler... Ich kann mit dieser Source ein Hex-File erstellen, no problem, aber kein Signal an keinem der beiden Output-Ports....

;main program
title "PIC12F675 ADC servo pulse"
list p=P12F675,f=inhx32
#include <p12F675.inc>
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF &_PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
ERRORLEVEL -302 ;SUPPRESS BANK SELECTION MESSAGES

;Hex file contains this config word: Internal OSC no clock out. WDT=ON,
;Poweruptimer=ON, Master clear enable = Internal, Brown out detect = OFF, Code protect = OFF, Data protect = OFF.

#define LED0 GPIO,0 ;
#define LED1 GPIO,1 ;
#define KNAP GPIO,3 ; MCLR KNAPPEN
#define LED4 GPIO,4 ;
#define LED5 GPIO,5 ;

#define borrow STATUS,0 ;C bit
#define zero STATUS,2 ;Z bit
#define carry STATUS,0 ;C bit
;state equ 0x10 ;state machine
;timer equ 0x11 ;timer output
#define TM0 timer,0 ;timer0 output
#define TM1 timer,1 ;timer1 output
#define TM2 timer,2 ;timer2 output

timer0 equ 0x22 ;timer 0
timer1 equ 0x23 ;timer 1
timer2 equ 0x24 ;timer 2
timer3 equ 0x25 ;timer 3
timer4 equ 0x26 ;timer 4

#define option 0x04
#define const60 0x3C ;const 60
#define const12 0x0C ;const 12

; org 0x00
; goto Initialize
; org 0x06 ; remove from comment when using interrupts

Initialize
clrwdt ; clear watchdog timer
bcf STATUS,RP0 ; bank 0
clrf GPIO
movlw b'0000111' ;load cmcon register
movwf CMCON ; digital IO

bsf STATUS,RP0 ; bank 1
call 3ffh ; get cal value from last address
movwf OSCCAL ; set cal factor
movlw b'01010100' ; 16 clk. and AN2 is selected as analog input
movwf ANSEL ; digital IO
movlw b'00001100' ; load data GP0=output, GP1=out, GP2=analog input, GP3=input
movwf TRISIO ; set
bcf STATUS,RP0 ; bank 0
movlw b'00001011' ; left 8 bit in adresh, VCC ref,
movwf ADCON0 ; setup converter

main
clrwdt
bsf ADCON0,GO ; start converter
adl nop
btfsc ADCON0,GO
goto adl ; wait until converter is done
movf ADRESH,W ; get 8 bit result into W
movwf timer1

; *** new by andi
; bei mitte hat timer1 jetzt den Wert 128, ist der
;Wert zwischen 124 und 133-1 so leuchtet die LED
movlw d'124'
subwf timer1,w
btfss STATUS,C
goto NichtMitte
movlw d'133'
subwf timer1,w
btfsc STATUS,C
goto NichtMitte
bsf LED5
goto CONT1
NichtMitte
bcf LED5

CONT1

;***
bsf LED4
call del0
call del1
bcf LED4
call delay20mS
goto main


knaptryk
movlw 0x30
movwf timer1
goto del0

del0
movlw 0xC4
movwf timer0 ; make delay 1000uS, min servo time
d0l movlw 1 ;1
decf timer0,f
btfss zero
goto d0l
retlw 0

del1 ; 1000uS + 1500 = 2000uS
movf timer1,W
btfsc zero
retlw 0 ; if inpulse is zero from ADC value.
d1
nop
decfsz timer1,1
goto d1
retlw 0


delay20mS
movlw 0x10
movwf timer1
d20
movlw 0xff
movwf timer0
del22
movlw 1 ;1
decf timer0,f
btfss zero
goto del22
nop
movlw 1
del222
decf timer1,f
btfss zero
goto d20
retlw 0

end
In a world without walls and fences, who needs windows and gates ?

cord

RCLine User

Wohnort: Oyten

  • Nachricht senden

6

Montag, 11. April 2005, 23:25

Zitat

kein Signal an keinem der beiden Output-Ports....


Wie, an LED4 auch nicht mehr? Da sollte sich doch nichts geändert haben.

Läuft es denn ohne die Erweiterung vom Andi, wenn Du die Quelle selber compiliert hast?

Gruss
Cord

P.S.: Mein Vorschlag wäre folgender gewesen:

movwf timer1

; *** new
movlw d'133' ;springe wenn größer oder gleich 133
subwf timer1,W
btfsc STATUS,C
goto led_off

movlw d'124' ;springe wenn kleiner oder gleich 124
addwf timer1,W
btfss STATUS,C
goto led_off

led_on
bcf LED5
goto generate_pulse

led_off
bsf LED5

generate_pulse
; ***
bsf LED4
call del0
call del1
bcf LED4
call delay20mS
goto main

christoph.graf

RCLine User

  • »christoph.graf« ist der Autor dieses Themas

Wohnort: Schweiz, Region Genf

Beruf: Networking Engineer

  • Nachricht senden

7

Montag, 11. April 2005, 23:36

it works!

Hallo zusammen

Es war wirklich ein Problem mit OSCCAL...
Ich denke man sollte einfach keine Anfänger an solche Modifikationen lassen ... habe zum ersten Mal mit einem 12F gebastelt... Ansonsten arbeite ich mit Bascom AVR und mit BasicX und werde besser auch dabei bleiben :-)

Ich hoffe ich kann Euch beiden auch mal einen Stein in den Garten werfen....

VIELEN DANK!

Und beste Grüsse aus Genf.

Christoph
In a world without walls and fences, who needs windows and gates ?