vasile eugen Postat Ianuarie 19, 2010 Partajează Postat Ianuarie 19, 2010 SalutareAs avea nevoie de o indrumare,in o finalizare a unui ceas cu Ds1307 si Atmega 8,am reusit sa fac rutina de ceas si data,dar pentru conectare butoanelor de setare nu am reusit.Am incercat cu functiile DEBONCE si GOSUB la porturile la care am pus butoanele dar si cu functiile DIMxx,CONFIGxx si IF THEN xxdar nu reusesc sa fac setarea.Sau se face sub forma de meniu cu functiile de setare?Multumesc anticipat. Link spre comentariu
yo6pir Postat Aprilie 21, 2010 Partajează Postat Aprilie 21, 2010 Ai finalizat ceasul? Pe asta: http://avrprojects.info/avr-projects/ds ... sed-clock/ l-ai incercat? Link spre comentariu
vasile eugen Postat Aprilie 21, 2010 Autor Partajează Postat Aprilie 21, 2010 da l-am testat,este functionabil cel de pe acel sait.Am inca doua softuri de ceas cu DS1307.Vreau sa incerc acum cu display cu leduri,numai sa fiu mai liber cu serviciul. Link spre comentariu
srdjan Postat Aprilie 29, 2010 Partajează Postat Aprilie 29, 2010 va salut. tot asa ceva incerc sa fac si eu dar de la 0. delatfel nici nu m-am uitat peste proiect. folosesc stk500, HD44780, atmega8, DS1307. problema e afisajul. de cate ori afisez ceva pe el...sta putin afisat dupa care dispare. daca reusesc sa resetez MCU-ul pe perioada cat textul e afisat acesta nu mai dispare. mentionez ca folosesc libraria lcd_lb din avr-gcc. aveti idee de ce se intampla aceasta? codul de test este: #define F_CPU 1000000ul#include <avr/io.h>#include <stdlib.h>#include <util/delay.h>#include <stdio.h>#include "lcd_lib.h"#include <string.h>#define LCD_4bit#define LCD_RS 0 //define MCU pin connected to LCD RS#define LCD_RW 1 //define MCU pin connected to LCD R/W#define LCD_E 2 //define MCU pin connected to LCD E#define LCD_BL 3 //define MCU pin connected to LCD BL#define LCD_D4 4 //define MCU pin connected to LCD D3#define LCD_D5 5 //define MCU pin connected to LCD D4#define LCD_D6 6 //define MCU pin connected to LCD D5#define LCD_D7 7 //define MCU pin connected to LCD D6#define LDP PORTD //define MCU port connected to LCD data pins#define LCP PORTD //define MCU port connected to LCD control pins#define LDDR DDRD //define MCU direction register for port connected to LCD data pins#define LCDR DDRD //define MCU direction register for port connected to LCD control pinsint main(void){ LCDinit();//init LCD 8 bit, dual line, cursor right LCDBLon(); LCDclr();//clears LCD LCDhome();//cursonr home LCDstring("SOME TEXT", 9);} Link spre comentariu
stefan_k Postat Aprilie 29, 2010 Partajează Postat Aprilie 29, 2010 Scuze, is cam obosit, poate vorbesc prostii.Dupa linia LCDstring("SOME TEXT", 9);pune ceva de genul for(;;); sau while(1);altfel programul se termina, si chiar nu mai stiu in ce stare trece procesorul. Link spre comentariu
srdjan Postat Aprilie 29, 2010 Partajează Postat Aprilie 29, 2010 am incercat si asta... nu de la aia era problema. intamplator am scos panglica de pe placa de dezvoltare si dupa ce am pus-o innapoi nu a mai facut probleme... merci oricumLE: ba nu... altu e baiu. dupa ce reprogramez nu se reseteaza LCD-ul si dupa initializare apar rezultate haotice... ideea e ca tensiunile ce apar pe traseele de date si control mentin "alimentat suficient" LCD-ul...cum fac sa "scap" de efectul acesta? ar trebui sa folosesc un tranzistor pentru a stinge LCD-ul cand e resetat MCU? Link spre comentariu
nana Postat Aprilie 30, 2010 Partajează Postat Aprilie 30, 2010 problema nu este din cod daca zici ca iti afiseaza bine odata si dupa dispare, decat daca nu e in bucla. Si apelezi din nou memoria LCD_ului si rescri alta informatie, LCD_ul mentine datele in memorie si le afiseaza pana la primirea altora noi. Deci probabil dupa executarea scrieri in memorie se intampla ceva cu pinul R/W, masoara cu osciloscopul acel pin si vezi ce se intampla. Incearca mai intai sa nu folosesti BL mergi standard, dar nu prea cred ca are vre-un amestec cu partea digitala. Link spre comentariu
srdjan Postat Aprilie 30, 2010 Partajează Postat Aprilie 30, 2010 pfua...trebuie sa-mi fac placi de extensie pt stk500 nu routeaza toti pinii asa cum ar fi evident spre porturile de iesire... iar cu soluturile de extensie e destul de incomod cand lucrezi pe breadboard. desi am reusit sa rezolv destul de multe am o problema.cand folosesc lcd_lib si trimit un text spre afisare cu LCDstring("text", 4); imediat dupa ce am asezat cursorul cu LCDGotoXY(0,0); imi afiseaza textul dar mai in dreapta cu cateva pozitii. daca dau imediat dupa LCDinit(); reapare unde trebuie textul. aveti idee de ce si ce as putea face? Link spre comentariu
nana Postat Mai 1, 2010 Partajează Postat Mai 1, 2010 1 se pune LCDstring('text',4); Deci mai intai trebuie initializat LCD-ul dupa care daca vrei sa afisezi default nu mai trebuie sa dai pozitionarea cursorului. Pune direct functia de afisare. El la initializare aseaza cursoru direct in poz 0,0.Acu sincer nu prea inteleg ce vrei tu sa faci acolo.2 Uitate exact cum lucreaza acele librari ca sunt descrise modu de adresare a datelor etc, daca nu merge nici asa atunci pune mana pe un debuger. Link spre comentariu
srdjan Postat Mai 1, 2010 Partajează Postat Mai 1, 2010 am studiat integral libraria imediat ce am vazut sf-urile ce-mi apar. indiferent pe care din randuri afisez in momentul in care trimit un text cu functia LCDstring() imi apare cu 8 caractere mai in dreapta. daca execut LCDinit() imediat dupa LCDstring() imi apare textul exact unde ar trebui. asta nu inteleg de ce se intampla asa...mentionez ca o chestie similara patesc si cu LCDsendChar('x'); si anume nu imi apare caracterul (sau apare la coordonate dincolo de intervalul ecranului) si abia la chemarea metodei LCDinit() apar chiar unde trebuie :|. offf... Link spre comentariu
vasile eugen Postat Mai 1, 2010 Autor Partajează Postat Mai 1, 2010 un link cu aceasta tema : http://extremeelectronics.co.in/avr-tut ... ontroller/ Link spre comentariu
srdjan Postat Mai 5, 2010 Partajează Postat Mai 5, 2010 Vă salut! Revin cu proiectul meu. Am ajuns la versiunea finala a hardware-ului pe breadboard. E clar ca o poză face cât 1000 de cuvinte deci iată 2000 de cuvinte: important e că am reuşit să înghesui tot ce am vrut pe un attiny2313 (şi nu-mi fac griji nici la capitolul soft) deocamdata (si presupun ca asa o sa ramana) cuprinde urmatoarele: 1 x attiny2313 1 x ds1307 1 x 32768Hz quartz crystal 4 x push button NO 2 x two digit 7 segments LED display (common anode) 4 x NAND (pentru inversare; doar doua sunt folosite) 4 x AND (alaturi de NAND pentru decodificare a doi pini pentru anozii display-urilor 4 x BC639 (drivere pentru anozii afisajelor) 1 x 7805 2 x 5mm LED 13 x rezistente 1/4W 1 x capacitor 100nF si vreo 6-7 metri de fire pentru breadboard. de maine ma apuc de soft dar mai cu lene... Link spre comentariu
srdjan Postat Mai 9, 2010 Partajează Postat Mai 9, 2010 asta am reusit sa fac din soft pana acum...ar mai fi programarea manuala si paginarea ecranului... Link spre comentariu
srdjan Postat Mai 11, 2010 Partajează Postat Mai 11, 2010 dupa ce m-am stresat cateva seri am ajuns la disperare cu afisajul. m-am enervat si am zis sa incerc softul din link-ul dat de "vasile eugen". si bine am facut. merge ceas :)am adaptat traseele la circuitul din link. foarte probabil librariile folosite de mine aveau scapari ori legate de BUSY FLAG ori de timming. daca o sa am timp de hardcode sau sa "adaptez" substratul la nevoi sau nevoile la substrat o voi face. important e ca am ceva functional desi usor limitat (lipsa calendar) si insuficient personalizat. important e ca am invatat I2C (TWI) fara mult stress. multumiri si la mai mare Link spre comentariu
nana Postat Mai 12, 2010 Partajează Postat Mai 12, 2010 dupa ce m-am stresat cateva seri am ajuns la disperare cu afisajul. m-am enervat si am zis sa incerc softul din link-ul dat de "vasile eugen". si bine am facut. merge ceas :)am adaptat traseele la circuitul din link. foarte probabil librariile folosite de mine aveau scapari ori legate de BUSY FLAG ori de timming. daca o sa am timp de hardcode sau sa "adaptez" substratul la nevoi sau nevoile la substrat o voi face. important e ca am ceva functional desi usor limitat (lipsa calendar) si insuficient personalizat. important e ca am invatat I2C (TWI) fara mult stress. multumiri si la mai mare I2C e un protocol destul de usor insa daca il implementezi hardware sa vezi cand mai faci si controlul mesajelor atunci distractie, insa daca o faci dupa totu e o boierie, Eu am reusit sa pun 7 dispozitive pe acelasi buss deci 2 fire = 7 dispozitive si le citesc pe toate in 300 de ms. Deci destul de repede si folosesc doar frecv de 100kHz deci se poate si mai repede. Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum