Sari la conținut
ELFORUM - Forumul electronistilor

fisier asm in hex


nel65

Postări Recomandate

TRUE !!!

 

Asa imi trebuie cand ma grabesc si lucrez printre picaturi (sunt la servici).

Merci Liviu, daca tot fac un gest, macar sa fac ceva corect.

 

Atasat programul compilat la 4MHz, frecventa oscilatorului intern. Restul ramane la fel.

 

LE: sunt curios daca o sa mearga. M-am uitat putin prin el si in functia de initializare a LCD-ului are un delay initial cam mic, 20ms. In datasheet-ul la HD44780 este trecut un delay de 40ms.

 

LLE: scuze, delay-ul este bun pentru cand se lucreaza in logica TTL (5V). Stiam eu ceva, dar cele 40ms delay sunt necesare cand se lucreaza in logica 3.3V ceea ce nu este cazul aici.

LLLE: Si varianta in care foloseste un cristal de cuartz cu frecventa 20MHz.

Morse_generator_INTOSC_4MHz.zip

Morse_generator_HS(cuartz)_20MHz.zip

Editat de mars01
Link spre comentariu
  • Răspunsuri 41
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • mars01

    13

  • yo7but

    8

  • nel65

    7

  • yo5qax

    6

Top autori în acest subiect

Buna seara,

Multumesc pentru ajutor, intradevar are cuart extern de 20 MHz. As mai avea o rugaminte, daca se poate, as mai dori un fisier in care sa fie selectata teastatura "QWERTY". Atasez comentariul de pe sit-ul respectiv cu modul de selectare :

 

"The firmware is currently written for a PS/2 keyboard with an AZERTY layout, but you can easily convert it to a QWERTY layout. Each layout has its own array with keyboard data: const char keyCode[]. You need to comment/delete the version you don't need"

 

Eu, daca nu ma pricep la scris programe, am dat copy paste si l-am salvat cu extensia ASM.

Miine ma apuc sa fac montajul electronic si o sa va anunt daca si cum functioneaza. Este un generator de semnale morse semnale generate de la o tastatura PS2 si un LCD 2x16 pentru vizualizare.

Inca odata mii de multumiri.

Link spre comentariu

Cu placere, dar multumirile trebuie sa mearga la cel care a conceput totul. Eu nu am facut mare lucru, doar am creat un proiect, cateva mici modificari si am compilat. Felicitari pentru montaj!

Cele bune.

Editat de mars01
Link spre comentariu

Salut,

Eu am multumit la toata lumea cu ajutorul carora am realizat acesta aplicatie. Cum spuneam nu ma pricep sa scriu programe dar am observat ceva. Inainte de a posta pe forum am trimis un e-mail autorului (din Belgia) solicitindu-i cele doua fisier in hex (pt. azerty si qwerty". azi am primit cele doua fisiere cu care am programat mc si din pacate nu functioneaza niciunul. Ce am observat :

- cele doua fisiere au lungimi diferite azerty are 5036 iar qwerty are 6664 ;

- programul de scris este ICPROG. in momentul incarcarii fisierului in bufer apar bifate urmatoarele setari :

             oscilator : RC CLKOUT iar bifate WDT, MCLR, BODEN si LVP.

Intrebarea mea este daca-i normal acest lucru ?

Multumesc.

Link spre comentariu

Salut,

 

Nu am folosit ICPROG dar sursele de clock pt PIC16F628A sunt:

  • [*]
RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN [*]RC oscillator: I/O function on RA6/OSC2/CLKOUT pin, Resistor and Capacitor on RA7/OSC1/CLKIN [*]INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN [*]INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN [*]EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN [*]HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN [*]XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN [*]LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN

Daca apare selectat RC Clockout inseamna ca a fost setat sa foloseasca oscilatorul RC intern (cum l-am compilat si eu la inceput) iar semnalul de clock (divizat cu 4) este prezent pe pinul RA6.

 

WDT bifat inseamna ca a fost activat timerul pentru WatchDog (ceea ce inseamna ca daca in soft nu se face resetarea acestui timer in timp util, procesorul se reseteaza la nesfarsit fara sa execute nimic concret, poate doar o parte din program).

 

MCLR bifat inseamna ca a ales ca pinul RA5 sa fie fie pin dedicat pentru RESET.

 

BODEN - a activat brown out detector; daca procesorul detecteaza ca tensiunea de alimentare este sub un anume prag, face automat reset

 

LVP - inseamna ca programarea se face in low voltage. Fara sa intru in detalii, nu este ceva de dorit.

 

Toate aceste setari nu sunt necesare si probabil ca autorul nu a fost atent cand a efectuat compilarea. Fara modificari in surse, fisierele oferite de autor sunt intr-adevar inutilizabile (din cauza WDT-ului, restul nu sunt chestii prea grave).

 

Cele bune,

Marius

Editat de mars01
Link spre comentariu

Eu nu vad nicaieri in cod partea de setare a bitilor de configurare.Din cate tin eu minte, la picc era o declaratie de genul __CONFIG(WDT_OFF & MCLR & LVP_OFF...).

Editat de Liviu M
Link spre comentariu

Pentru compilatoarele Hi Tech asa era, si intr-adevar lipsea. La compilatoarele Microchip XC se foloseste #pragma config ...., directiva __CONFIG este considerata "deprecated", si am adaugat eu configurarile necesare. Se poate vedea in fisierul .c din arhivele atasate pana acum.

Editat de mars01
Link spre comentariu

Eu stiu ce zici tu, comentam doar referitor la "rautatea" autorului. Care n-a fost rau, pur si simplu n-a pus nici un fel de configuratie in surse (presupun ca ce vede yo7but sunt setarile default ale softului lui de programare).

Probabil ca autorul face si el setarile in softul de programare.

Link spre comentariu

Va salut

Am facut si eu acest montaj (multumesc  lui @mars01 pentru translatarea in hex a acestui program) si intradevar functioneaza dar la o viteza prea mare pentru un incepator in ale telegrafiei autorul spune in partea a treia la finalul teoriei ca viteza de transmitere se poate controla cu ajutorul tastelor F1.......F12 dar nu se intampla nimic apasand aceste taste cum trebuie procedat ?

multumesc pentru un eventual raspuns.

Link spre comentariu

Buna ziua,

 

Din pacate, in codul pe care l-am compilat, in functia processCode() care proceseaza tastatura sunt tratate ca si caractere speciale: Backspace, Enter si Escape.

Nici vorba de tastele F*

Poate ca este vorba de o alta versiune a codului.

 

LE: Acum am citit pe pagina autorului:

 

 

 

Possible Improvements

My firmware certainly needs some extra optimisations. Here are some things that still needs to be done:

  • [*]Add an option to change the speed of the code. The speed could be selected by pressing one of the F1 ... F12 buttons

 

 

Asadar vorbim de "posibile inbunatatiri", deci aceasta optiune nu a fost implementata la acel moment.

 

LLE: nu sunt familiar cu subiectul. ce inseamna ca viteza este prea mare? Linia si punctul dureaza prea putin sau intervalul de timp dintre ele este prea scurt?

Editat de mars01
Link spre comentariu

@mars01 multumesc pentru promtitudine,aveti drptate autorul spune "inbunatatiri posibile"

 

Possible Improvements

My firmware certainly needs some extra optimisations. Here are some things that still needs to be done:

  • [*]Add an option to change the speed of the code. The speed could be selected by pressing one of the F1 ... F12 buttons. [*]The parity of the incoming keyboard data is ignored. This means that incorrect data won't be detected. [*]The software counts the number of received bits. Every eleventh bit, an incoming keycode is composed. The PIC could 'miss' an incoming bit. This would cause the PIC to mix parts of different keycodes into a single keycode. A possible solution is to use a timer that resets the bitcounter after a certain time-out.

o zi buna!

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări