Il fatto che io abbia un impianto a liquido nel PC non vi deve trarre in inganno, non sono mica un fanatico dell' overclocking!
[INTERRUPT] Info importante per aspiranti microcontrollisti
Moderatore:
Paolino
44 messaggi
• Pagina 3 di 5 • 1, 2, 3, 4, 5
0
voti
Li lappate e ci mettete un waterblock e poi fate a gara!
Il fatto che io abbia un impianto a liquido nel PC non vi deve trarre in inganno, non sono mica un fanatico dell' overclocking!
Il fatto che io abbia un impianto a liquido nel PC non vi deve trarre in inganno, non sono mica un fanatico dell' overclocking!
Son quello delle domande strane!
0
voti
Prima che chiuda e ci "banni" a vita, se riesce a darmi qualche "info" sulle differenze, se esistono, della gestione degli interrupt dei micro rispetto ai "processori" x86...
Son quello delle domande strane!
0
voti
Se parliamo dell'8086 e dei fratelli vicini, diciamo fino al 386, sostanzialmente non ci sono differenze nel loro utilizzo. Se invece parli dei micro x86 attuali, non ha neppure senso parlarne perché non credo (io non ho mai sentito) che siano stati scritti programmi che gestiscano il micro a tale livello. Attendiamo altre fonti.
1
voti
angel99 ha scritto:Adesso Pietro arriva e chiude il 3D...
Chiuderei volentieri quelli di coloro che usano gli interrupt in quel modo e poi si lamentano che il micro a 72MHz è lento, quando con uno Z80 a 4MHz si potrebbero fare il triplo delle cose...ma non posso.
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12206
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
1
voti
Di norma nell'interrupt si lascia il minimo indispensabile, ma purtroppo alle volte il minimo indispensabile corrisponde a buona parte del programma.
Sto mettendo a punto un generatore di funzioni DDS (senza troppe pretese a dir la verità) utilizzando un PIC18F4450 (ce l'ho in casa e lo voglio usare
).
Di fatto, dopo aver programmato la RAM esterna, deve far girare all'infinito una routine che fa la somma di due numeri a 24 bit mettendo sui pin il risultato.
Deve girare all'infinito fino a quando un evento esterno (pressione di un tasto o simili) richiedono attenzione e bisogna assecondarli :)
Ora, la somma dei due numeri richiede una ventina di cicli macchina, aggiungerne anche solo 4 per verificare se una variabile ha cambiato valore significa decrementare del 20% le prestazioni.
L'idea (ma forse si può fare altrimenti) è quella di lasciare nel programma principale solo la routine che fa la somma e gestire tutto il resto nell'interrupt.
Al momento non mi vengono in mente altre soluzioni.
Purtroppo, alle volte, gli interrupt devono essere corposi.

Sto mettendo a punto un generatore di funzioni DDS (senza troppe pretese a dir la verità) utilizzando un PIC18F4450 (ce l'ho in casa e lo voglio usare
).Di fatto, dopo aver programmato la RAM esterna, deve far girare all'infinito una routine che fa la somma di due numeri a 24 bit mettendo sui pin il risultato.
Deve girare all'infinito fino a quando un evento esterno (pressione di un tasto o simili) richiedono attenzione e bisogna assecondarli :)
Ora, la somma dei due numeri richiede una ventina di cicli macchina, aggiungerne anche solo 4 per verificare se una variabile ha cambiato valore significa decrementare del 20% le prestazioni.
L'idea (ma forse si può fare altrimenti) è quella di lasciare nel programma principale solo la routine che fa la somma e gestire tutto il resto nell'interrupt.
Al momento non mi vengono in mente altre soluzioni.
Purtroppo, alle volte, gli interrupt devono essere corposi.

http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)
Strumento per formule
Tool gratuito per chi sviluppa su millefori.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)
Strumento per formule
-

posta10100
5.550 4 10 13 - Master EY

- Messaggi: 4832
- Iscritto il: 5 nov 2006, 0:09
2
voti
Ciò di cui Freak sta parlando (mi arrogo ad interpretatore ufficiale) è che bisognerebbe analizzare il firmware prima di scriverlo. Ciò che si infila in una routine o in un'altra non deve essere ciò che appare necessario al momento, ma ciò che si è pianificato prima di scrivere il primo mov (o il primo void per chi non conosce l'assembler
).
Nella routine di IRQ ci va solo quello che deve essere fatto prima che possa arrivare lo stesso interrupt una seconda volta! Tutto il resto va demandato alla parte "interruptibile" (aghhh che termine!) del programma (il main loop).
Nella routine di IRQ ci va solo quello che deve essere fatto prima che possa arrivare lo stesso interrupt una seconda volta! Tutto il resto va demandato alla parte "interruptibile" (aghhh che termine!) del programma (il main loop).
1
voti
EcoTan ha scritto:.. e non è che io ne capisca tantissimo di quello che succede.
Questo è male, non s'ha da fare.
Rimedio: munirsi di buona volontà e studiare il/i microcontrollori.
angel99 ha scritto: Scrivete, scrivete in C... e poi quello che fa il micro lo sa solo il compilatore (e forse neppure lui).
Assembler forever!
Le palle! (emoticon con gesto dell' ombrello)
Si scrive in C prendendosi la briga di andare a vedere come lavora il compilatore (cosa che quasi nessuno fa e che invece dovrebbero fare tutti
Se poi il compilatore fa cag... ehm ... non è dei migliori allora si mette mano all' assembler.

"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
44 messaggi
• Pagina 3 di 5 • 1, 2, 3, 4, 5
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 26 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


pigreco]=π

