Hi-tech picc-18 pro _delay () bug

B

belesci

Guest
I PICC18 brukerveiledning det er skrevet _delay () inline funksjonsargument er usignerte lenge, men hvis du sjekker under 3 eksempler det er noe galt

eksamen 1 korrekte,
# include <pic18.h>
void main (void)
(
_delay (770);
)
kode generert
143 003FF2 _MAIN:
144 opt stabel 31
145; BSR satt til:?
146 003FF2 ffff dw 65535
147 003FF4 0E00 movlw 0
148 003FF6 u667:
149 003FF6 2EE8 decfsz wreg, f, c
150 003FF8 D7FE goto u667
151 003FFA D000 nop2; nop
154 003FFC EF00 F000 goto start
/************************************************* *****/
eksamen 2 feil,

# include <pic18.h>

void main (void)
(
_delay (771);
)
kode generert
143 003FF4 _MAIN:
144 opt stabel 31
145; BSR satt til:?
146 003FF4 ffff dw 65535
147 003FF6 0E01 movlw 1
148 003FF8 u667:
149 003FF8 2EE8 decfsz wreg, f, c
150 003FFA D7FE goto u667
152; BSR satt til:?
153 003FFC EF00 F000 goto start
/************************************************* ******/
eksamen 3 galt,
# include <pic18.h>

void main (void)
(
_delay (5771);
)
kode generert
143 003FEC _MAIN:
144 opt stabel 31
145; BSR satt til:?
146 003FEC ffff dw 65535
147 003FEE 0100 movlb 0; () banked
148 003FF0 51FF movf? _MAIN & (0 255), w, b
149 003FF2 0E7C movlw 124
150 003FF4 u667:
151 003FF4 2EE8 decfsz wreg, f, c
152 003FF6 D7FE goto u667
153 003FF8 2FFF decfsz? _MAIN & (0 255), f, b
154 003FFA D7FC goto u667
156; BSR satt til:?
157 003FFC EF00 F000 goto start

Hva er galt?Er det feil eller noe savnet?
Takk for interessant.

 
Se på _delay definisjon.

Har du angitt kjører frekvens
av PIC18 din?

 
Running frekvens er nødvendig for PICC-18 STD versjonen.

For PRO-versjon, _delay () genererer antall sykluser.

Her er PICC-18 PRO manuell beskrivelse,

Beskrivelse
Dette er en innebygd funksjon som er utvidet med koden generator.Da ringte, utvides denne rutinen
til et inline assembly forsinkelse sekvens.Sekvensen vil bestå av kode som forsinkelser for det antall
sykluser som er angitt som argument.Argumentet må være en bokstavelig konstant.

Eksempel
# include <htc.h>
void
main (void)
(
control | = 0x80;
_delay (10); / / forsinkelse i 10 sykluser
kontroll & = 0x7F;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top