Nume: Victor Cărbune
Grupa: 335CA
E-mail: victor.carbune@gmail.com
Proiectul de față își propune să abordere problema decodificării codului Morse într-un mod similar celui în care codul a fost folosit (cu un singur mediu de comunicare, simulat în cazul nostru printr-un singur buton).
Funcționalități de bază:
Am decis să fac acest proiect pentru că nu exista, în lista proiectelor din anii trecuţi, o implementare corespunzătoare - toate proiectele aveau mai mai multe butoane (punct, linie, enter) - inutil, pentru că o linie înseamnă trei puncte în codul Morse.
Spre deosebire de codul Morse, unde separarea cuvintelor şi a literelor se făcea prin aceeaşi unitate de bază, punctul, în cazul proiectului această separare este realizată prin intervale diferite de timp, indicate pe LCD.
Proiectul nu este complicat hardware, necesitând doar ataşarea unui LCD plăcuţei din etapa I de proiect. Schema este următoarea:
Modelul de LCD achiziţionat: Bolymin BC1602E
Proiectul foloseşte o întrerupere pentru Timer1, de acesta depinzând următoarele funcţionalităţi:
Intern, pe măsură ce simbolurile sunt decodificate, sunt reţinute într-un buffer temporar, care în momentul de idle încearcă să regăsească simbolul în tabelă, şi dacă este un simbol valid îl reţine în buffer-ul cuvântului.
Codificarea este reţinută sub forma unui string, ca de exemplu ”.-.” şi stocarea locală este compatibilă, astfel încât să nu se facă decât o comparaţie.
Principala problemă a fost cu bootloader-ul pe plăcuţa de test. Nu am reuşit să-mi dau seama că nu funcţionează corect de la început, şi am pierdut mai mult de două zile căutând probleme la LCD şi verificând plăcuţa cu atenţie din nou, ca la prima etapă.
De asemenea, codul de la laborator pentru LCD nu este funcţional (cred că din cauza diferenţei de controller-e, al meu având KS0066, pe când cel de la laborator Hitachi) şi am folosit o altă variantă uşor modificată.
Cu toate acestea, căutând sursa problemei am înţeles mai bine cum să lucrez cu componentele electronice la acest nivel, şi nu consider că întreg timpul a fost irosit din această cauză.
Proiectul este complet funcţional: yamd-vcarbune.zip.
Notă: din cauza unor disconcordonţe şi modificări ale laboratorului aparent în final nu merge rularea direct în Proteus, cu toate că pe plăcuţă merge fără nicio problemă.
Resursele de pe wiki, datasheet-ul LCD-ului achiziţionat şi un tutorial de pe avrfreaks.