condizionato il montaggio su un PIC .... ..

B

Buriedcode

Guest
Salve,

Sto progettando un controller PWM per PIC, ho spiegato i miei algoritmo in un altro argomento, tuttavia, richiede che ho messo il contenuto di 3 registri in ordine di grandezza.Inoltre, per tenere traccia di registro che il contenuto proviene da un ulteriore 3 registri che hanno un valore che rappresenta il suo registro da .... hope
you're ancora con me

<img src="images/smiles/icon_biggrin.gif" alt="Molto Felice" border="0" />Così, per esempio, dire che ho 3 registri, chiamati A, B e C. Ho messo a caso, un numero a 8 bit in ognuno.Ho bisogno di avere 6 registri in uscita ..... io li chiamano:
'piccolo', 'medio' e 'grande'.Inoltre, per tenere traccia whats sul contenuto a cui appartiene registro (A, B o C), gli altri 3 registri in uscita sono 'smlreg' 'midreg' e 'lrgreg'.Dire, il contenuto della 'A' la registrazione, è il più piccolo di tutti e 3, che contiene il valore decimale'23 '.Vorrei mettere
di 23 'nel' piccolo 'registrare e mettere a'1' nel 'smlreg' registro.Forse il contenuto di 'C' è il valore medio, quindi vorrei mettere il contenuto di esso nel 'mezzo' registrare e mettere'3 'in' midreg 'registro.(quindi,
i contenuti di 'B' andare nella 'grande' reg ', con'2' in 'lrgreg' registro.

Ora, mi rendo conto che la sua realtà complessa, e di qualsiasi livello superiore lingue potrebbe farlo in picche (PICbasic, C ecc.) Ma vorrei fare presente in assemblea.

Ho letto un po 'su' condizionato 'assemblea, e ho visto il codice scritto in forma:

SE tempreg> 0x7F
[Fate qualcosa]
Elseif tempreg <0x26
[Fate qualcos'altro]
ELSE
[lasciare tutto da sola]
ENDIF

Ora, io sono sicuri di quello che posso fare con questo?E 'per' operazioni di bit '(come il controllo di Porta 7 bit, e le bandiere) o può essere utilizzato per comparare il contenuto dei registri?(come se temp1> temp2).L'unico contesto che ho visto questo calcolo è utilizzato ritardi.

Ora, io
sono ancora abbastanza nuovo per il montaggio, e posso solo supporre che si tratta di una sorta di 'macro' MPASM che usi, e l'output di codice (hex) sarebbe in realtà prendere più di 1 ciclo di istruzione 'SE', perché il compilatore avrebbe sostituirla con istruzioni che eseguono esattamente ciò che voglio.

Sarebbe il mio algoritmo complesso molto più facile dal momento che ho potuto solo:

SE A> B
movf A, W
movwf HIGHEST
movf B, W
movwf LOWEST
Elseif B <A
movf B, W
movwf HIGHEST
movf A, W
movwf LOWEST
Elseif A = B
si ottiene l'idea ....

<img src="images/smiles/icon_smile.gif" alt="Sorriso" border="0" />Se qualcuno mi potrebbe aiutare con questo algoritmo, o se mi può spiegare in realtà uso 'IF-THEN-ELSE' sui registri e il loro contenuto, Le sarei grato.Se no, allora mi dovrete scrivere il tutto in puro asm, che, francamente, io non vediamo l'ora di

<img src="images/smiles/icon_sad.gif" alt="Triste" border="0" />
Grazie,

BuriedCode.

 
No. assebly condizionale non è un insegnamento.Si tratta di un assemblatore direttiva o pseudo-codice.Una direttiva non generare alcun codice.IF-THEN-ELSE dirvi il codice che va da assemblare,,,, non si esegue il codice.
È necessario attuare condizionato dal blocco di assemblaggio./ / Felipe

 
Hola aC,

Hai bisogno di scrivere codice asm puro.Tali direttive sono assemblatore per l'assemblaggio e, quando ciò di cui hai bisogno è di dare le istruzioni per il micro a seguire a tempo di esecuzione.

Non so se farlo, ma ho sempre disegnare diagrammi di flusso prima di decidere in che modo il controllo sarà fatto.E quindi utilizzare la sequenza delle comparazioni più conveniente per il caso.

Per evitare confusione io che uso, sempre,
le macro, che ho scritto di proposito, molto tempo fa.

Si potrebbe cercare qui, se volete:
http://cablemodem.fibertel.com.ar/...he per sempre. Buena suerte Tomás Agustín
 
Ciao gente,

Grazie per le vostre risposte!Ho pensato che non sarebbe stato così facile

<img src="images/smiles/icon_sad.gif" alt="Triste" border="0" />Ma atferrari, quelli macro davvero aiutare.

check if each register is 0 or 255 (PWM always off, or always on).

Dal momento che ho bisogno di metterli in ordine di grandezza (confrontare due registri) e di
controllare anche
se ogni registro è pari a 0 o 255 (PWM sempre spento o sempre su).Il codice sarà monsterous, ma con
delle macro, e possibilmente subroutine (se le variabili rimangono nella subroutine) non dovrebbe essere difficile che scrivere.Ho quasi sempre utilizzare un grafico ASM (diagramma di flusso) per il software, quindi pseudo-codice (SE POI's's Else's ecc.) Prima di scrivere la mia versione beta finale.Speriamo che mi può accorciare un po '.

I'll post qualsiasi successo in PWM argomento che, in questo forum.Forse può aiutare qualcuno che vuole far girare uno schermo LCD, 8 LED PWM'ed, tastiera e UART.

Grazie ancora ragazzi, si sapeva aveva le risposte.

Buriedcode.

 

Welcome to EDABoard.com

Sponsor

Back
Top