M
Hallo, Ich möchte eine Powerup routine schreiben.
Die routina selbst habe ich bereits in assembler.
aber die einbindung im gesamt system bereitet mir gerade extreme schwierigkeiten.
der compiler meldet immer folgenden fehler:
Error [802] F:\@led-it-light\@Kunden\illumics\Taschenlampe\programmierung\taschenlampe\funtionierende programme\programm ohne sleep funktioniert\power ab\powerup.as; 8. ungültige Adresse hinter END Anweisung
ich habe schon alles mögliche probiert aber leider gehts nicht.
laut Hitec muss man nur eine datei mit dem namen Powerup.as schreiben die mit einer "goto start
end Powerup" endet.
beim compilierenzeigt mir das system den obigen fehler.
[/code]
der datei powerup.as
processor 10F222
global start, powerup
powerup
asm
btfsc 3,7
btfsc 6,3
endasm
goto start
end powerup
nachdem ich leider keine ahnung von c- habe brauche ich mal eine kleine erklärende hand zu diesem File.
Der rest des Programms wird über eine c-Translator Flowcode4 erzeugt.
zwar selbst für mich etwas umständlich könnte mann sicherlich optimieren aber für die aufgaben reicht es.
Max
ich hänge hier zur erklärung noch die dateui Sartup.as hin damit mann erkennen kann was ich eigentlich brauche.
; HI-TECH C Compiler for PIC10/12/16 MCUs V9.82
; Copyright (C) 1984-2011 HI-TECH Software
;Licensed for evaluation purposes only.
;This licence will expire on Thu, 11 Aug 2011
; Auto-generated runtime startup code for prelink stage.
;
; Compiler options:
;
; -otkl007.cof -mtkl007.map --summary=default --output=default \
; TKL007.p1 startup.obj --chip=10F222 -P --runtime=default \
; --opt=default -g --asmlist --errformat=Error [%n] %f; %l.%c %s \
; --msgformat=Advisory[%n] %s --warnformat=Warning [%n] %f; %l.%c %s
;
processor 10F222
global _main,start,_exit,reset_vec
fnroot _main
psect config,class=CONFIG,delta=2
psect idloc,class=IDLOC,delta=2
psect code,class=CODE,delta=2
psect powerup,class=CODE,delta=2
psect reset_vec,class=CODE,delta=2
psect maintext,class=CODE,delta=2
C set 0
Z set 2
PCL set 2
INDF set 0
STATUS equ 3
FSR equ 4
OSCCAL equ 0x5
psect reset_wrap,class=ENTRY,delta=2
psect text,class=CODE,delta=2
psect functab,class=ENTRY,delta=2
psect init,class=ENTRY,delta=2
psect cinit,class=ENTRY,delta=2
psect end_init,class=ENTRY,delta=2
psect clrtext,class=ENTRY,delta=2
psect jmp_tab,class=ENTRY,delta=2
psect strings,class=STRING,delta=2
psect reset_vec,class=CODE,delta=2
reset_vec:
ds 1 ;oscillator constant would be pre-programmed here
psect reset_wrap
reset_wrap:
movwf 5 ;calibrate oscillator
clrf FSR
; No powerup routine
psect init
start
_exit
psect end_init
global start_initialization
ljmp start_initialization ;jump to C runtime clear & initialization
psect bank0,class=BANK0,space=1
psect ram,class=RAM,space=1
psect abs1,class=ABS1,space=1
psect common,class=COMMON,space=1
psect sfr0,class=SFR0,space=1
end start