-
-
es gibt verschiedene programmierer.
bei den einen kommt es nicht auf die optimierte umsetzung des codes an
sondern das der sensor einfach und korrekt angesprochen wird.
denen interessiert zwar der code, machen hier und da vorschläge
aber können den source-code nicht optimieren weil diese gruppe
in Bascom programmiert.
bei der nächsten gruppe handelt es sich um leute, die wissen wollen
was im AVR vor geht und möchten schnellen ausführungscode.
die gehören zur gruppe der winavr-c-progger.
zwar lässt sich in winavr-c der code durch schalter optimieren,
aber es fallen dann manchmal auch routinen zum opfer die
gebraucht werden, aber durch den optimierungschalter für unwichtig
eingestuft werden und weg sind sie. hier muss man dann immer
den mittelweg suchen. aber die könner liegen mit winavr-c
schon richtig, weil ohne das kennen der interna vom AVR
auch winavr-c nicht das richtige ist.
die dritte gruppe möchte die optimalsten programme und die
gib es nur, wenn nach dem compilieren ein asm-sourcecode vorliegt
den man dann verbessern kann und wieder neu compilieren kann in der
gleichen gui-oberfläche ohne gross aus dem programm auszusteigen.
dafür nimmt man fastavr-basic. hier ist man hautnah mit dem AVR auf du und du.
und es gibt keinen faulen tricks mehr.
alle oben erwähnten programme machen nicht das optimalste ergebnis
daraus. das eine programm hat hier mängel und das andere programm
hat dort mängel. der user darf aber vom asm-sourcecode nicht ausgesperrt
werden. und bei fastavr-basic wird er nicht ausgesperrt.
ein waschechter proggi zeigt auch interesse am ändern und
gibt sich nicht mit dem vorgegebenen zufrieden, nach dem motto:
vogel friss oder stirb.
hier ein einfaches beispiel wie es in fastavr-basic geht.
eine gleichung "b1=b1*b2+b3" in verschiedenen varianten.
1. original b1=b1*b2+b3 :
;-Line--0012----b1=b1*b2+b3--
lds zl,b1
push zl
lds zl,b2
pop r24
mul zl,r24
movw zl,r0
push zl
lds zl,b3
pop r24
add zl,r24
sts b1,zl
2. original b1=b1*b2
b1=b1+b3 :
;-Line--0009----b1=b1*b2--
lds r24,b1
lds zl,b2
mul zl,r24
movw zl,r0
sts b1,zl
;-Line--0010----b1=b1+b3--
lds r24,b1
lds zl,b3
add zl,r24
sts b1,zl
3. eine verbesserte version. eine von den obigen (die 2.) wurde sich
bei einem glas rotwein kurz vorgenommen und verbessert
und dann wieder in der gleichen gui von fastavr-basic neu compiliert :
lds r24,b1
lds zl,b2
mul zl,r24
movw r24,r0
lds zl,b3
add zl,r24
sts b1,zl
mfg pst
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen