Re: Pic kredsløb / kode virker ik?

Hejsa,

-- Loop1 decfsz COUNT1,1 goto Loop1

--
Her trækker du konstanten 1 fra 'COUNT1'. Resultatet placeres i 'COUNT1'. På 
et eller andet tidspunkt når 'COUNT1' værdien 0.
 Click to see the full signature
Reply to
Claus
Loading thread data ...

klip

klip

prøv i steddet

movlw b'00000000' ;S?tter alle Port b tris PORTB clrf PORTB

Iøvrigt er simuleringsværktøjet i mplab rimeligt godt se evt

formatting link

mvh Jeppe

Reply to
Jeppe

Claus:

vil det sige jeg kan skrive Loop1 decfsz COUNT4,5 det er jo forskelligt... ? eller hvordan skal det forst=E5s..

Mvh. Kevin H

Reply to
nowack7

Per: tak for det, vil pr=F8ve at inds=E6tte det og se om det virker :) tja tror 40 ms vil v=E6re fint, det burde da kunne ses, jeg skal ikk bruge det til noget, jeg skal bare =F8ve mig og blive bedre og se nogle resultater :)

Jeppe: tak for det, det var sku fint, men jeg kan ikk f=E5 mit MPlab til at vise den projekt holder :( ved du evt hvad der kan v=E6re galt?

Mvh. Kevin H

Reply to
nowack7

Hej Claus det er noget af en påstand du kommer med ! Jeg går ud-fra at mplab er Microchip's mplab jeg har søgt på Microchips hjemme side og har ikke kunde finde hold i din påstand,

Som der så smukt står skrevet, her under betyder '1' at resultatet bliver placeret i variablen, og havde du skrevet '0' var resultatet blevet placeret i 'W'

DECFSZ Decrement f, Skip if 0 Syntax: [ label ] DECFSZ f,d Operands: 0 ? f ? 127 d ? [0,1] Operation: (f) - 1 ? (destination); skip if result = 0 Status Affected: None Description: The contents of register ?f? are decremented. If ?d? is ?0?, the result is placed in the W register. If ?d? is ?1?, the result is placed back in register ?f?. If the result is ?1?, the next instruction is executed. If the result is ?0?, then a NOP is executed instead, making it a two-cycle instruction.

Jeg har lavet en test, og her er et lille udsnit af list filen som meget tydelig viser hvad der går galt som du kan se bliver resultatet af DECFSZ T1,3 det samme som DECFSZ T1,1 og DECFSZ T1,2 som DECFSZ T1,0, og sådan vil det gå med alle de tal du kan finde på at bruge, lige tal bliver betragtet som '0' og ulige som '1'

0006 00019 START 00020 0006 0B0D 00021 DECFSZ T1,0 0007 0B8D 00022 DECFSZ T1,1 Warning[202]: Argument out of range. Least significant bits used. 0008 0B0D 00023 DECFSZ T1,2 Warning[202]: Argument out of range. Least significant bits used. 0009 0B8D 00024 DECFSZ T1,3 00025 END
--
MHV
Carsten
Reply to
Carsten

Hej Kevin Jeg kan se at ud includer p16f84a.inc uden at du bruger den til noget, det er lidt fjollet, men du er sikkert ikke rigtigt med på hvad den bruges til ? jeg har lavet en lille kode stump som du kan prøve, du skal sikkert ændre på stien i include linjen så den passer til den computer

koden her under er skrevet til Microchip's gamle mpasm men den borte kunde fungere med mplab, og i modsat fald er det kun oppe i hovedet af programmet der skal laves lidt om

God fornøjelse

MHV Carsten

LIST P=16F84a, R=DEC ERRORLEVEL 0,-305 __config 0x3FF9

include "\udvik\pic\util\p16f84a.inc"

list

COUNT1 equ 0x0d COUNT2 equ 0x0e org 0 goto START org 06h

START BSF STATUS,RP0 ;select bank1 movlw 0x00 ;Sætter PortB som output movwf TRISB bcf STATUS,RP0 ;bank select 0

DiOn bsf PORTB,1 ; tænder for dioden

movlw 0xff movwf COUNT1 movlw 0x0f movwf COUNT2

Loop1 decfsz COUNT1,1 goto Loop1 decfsz COUNT2,1 goto Loop1

DiOff bcf PORTB,1 ; slukker for dioden

movlw 0xff movwf COUNT1 movlw 0x0f movwf COUNT2

Loop2 decfsz COUNT1,1 goto Loop2 decfsz COUNT2,1 goto Loop2

goto DiOn

end

Reply to
Carsten

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.