PKP98 Postat August 30, 2016 Partajează Postat August 30, 2016 Salutare! Ma tot chinui sa fac un lcd 2x16 sa mearga.In 8 bit am reusit ,dar in 4 biti nu reusesc.Pana acum am facut 3 functii si am incercat sa-l initializez. #include <avr/io.h>#include <util/delay.h>#define LcdData PORTD#define LcdControl PORTB#define LcdDataDdr DDRD#define LcdControlDdr DDRB#define FunctionData PINB0#define ReadWrite PINB1#define Enable PINB2void Data_in(void){ LcdControl|=(1<<Enable); asm volatile("nop"); asm volatile("nop"); LcdControl&=~(1<<Enable);}void Check_Busy(void){ LcdDataDdr=0; LcdControl|=(1<<ReadWrite); LcdControl&=~(1<<FunctionData); while(LcdData >= 0x08) { Data_in(); } LcdDataDdr=0xFF;}void Send_Command(unsigned char command){ Check_Busy(); LcdData=(LcdData & 0xF0)|((command>>4) & 0x0F); LcdControl&=~(1<<ReadWrite|1<<FunctionData); Data_in(); LcdData= (LcdData & 0xF0)|(command & 0x0F); Data_in(); }void Init_Lcd(void){ LcdControlDdr|=(1<<ReadWrite)|(1<<FunctionData)|(1<<Enable); LcdDataDdr=0xFF; LcdControl|=(0<<ReadWrite)|(0<<FunctionData)|(0<<Enable); _delay_ms(200); Send_Command(0x33); Send_Command(0x32); Send_Command(0x28); Send_Command(0x0F); Send_Command(0x01); Send_Command(0x06);}int main(void){ Init_Lcd(); while(1) { } Problema este ca nu imi apare cursorul pe ecran ,iar cateodata imi apare pe prima linie si coloana 2,nu reusesc sa-i dau de cap,am incercat in toate modurile ,m-am uitat la n tutoriale ,dar tot nu pot sa inteleg ce are. De conectat este conectat bine la Atmega8 ,dar nu vrea. Stiti cumva ce poate sa aiba? Link spre comentariu
nico_2010 Postat August 30, 2016 Partajează Postat August 30, 2016 La prima vedere eroarea de initializare provine de aici: Send_Command(0x33); Send_Command(0x32); Send_Command(0x28); Send_Command(0x0F); Send_Command(0x01); Send_Command(0x06); Citeste: http://web.alfredstate.edu/weimandn/programming/lcd/ATmega328/LCD_code_gcc_4d.html si : http://www.avrfreaks.net/forum/tut-lcd-tutorials-updated?name=PNphpBB2&file=viewtopic&t=81823 pentru edificare Link spre comentariu
Vizitator simipop Postat Octombrie 31, 2016 Partajează Postat Octombrie 31, 2016 Salut. Caut pe cineva care ar putea sa-mi copieze memoria flash si eeprom dintr-un procesor atmega 162 16AU. Eu nu reusesc sa citesc decat date false. tel: 0747546789 Link spre comentariu
mars01 Postat Octombrie 31, 2016 Partajează Postat Octombrie 31, 2016 Probabil ca este protejat la citire. Link spre comentariu
gabitzu2006 Postat Noiembrie 20, 2017 Partajează Postat Noiembrie 20, 2017 salutare! o intrebare de compatibilitate: un soft scris pentru at90s2313 va functiona la fel intr-un attiny2313? Link spre comentariu
mars01 Postat Noiembrie 20, 2017 Partajează Postat Noiembrie 20, 2017 (editat) Poti citi despre aceasta aici. Iar cineva sugereaza aici ca sunt sanse mari ca sa se poata face ce doresti. Editat Noiembrie 20, 2017 de mars01 Link spre comentariu
gabitzu2006 Postat Noiembrie 21, 2017 Partajează Postat Noiembrie 21, 2017 mda..ok...exact ce banuiam...concluzia e ca nimeni nu poate garanta ca un soft scris pt un AT90 va functiona pe un AT. nu am citit sursa indicata, nu stiu daca m-as pricepe sa inteleg ce zice acolo...am incercat o data sa inteleg, am inteles cam care ar fi diferentele hardware, dar nu inteleg cum se porteaza un soft de pe unul pe altul. asa ca..pot lansa o intrebare la care sa mi se raspunda cu da sau nu? se poate sau nu porta softul scris pt un AT90 pe un ATtiny si sa si functioneze? ca sa stiu daca sa abandonez acel proiect cu AT90 sau nu. e vorba de proiectul de aici: http://www.serasidis.gr/circuits/RF_remote_control/RF_remote_control.htm Link spre comentariu
nico_2010 Postat Noiembrie 21, 2017 Partajează Postat Noiembrie 21, 2017 Ca sa-ti dau putina speranta: da, s-ar putea sa functioneze, insa invers nu intotdeauna! De ce? Citeste cu atentie primul link postat de userul mars01! Inscrie fisierul hex al aplicatiei in Attiny, scrie corect fuse bits si ar trebui sa functioneze. Link spre comentariu
gabitzu2006 Postat Noiembrie 21, 2017 Partajează Postat Noiembrie 21, 2017 ok..am mai citit asta pe undeva, ca tot secretul ar fi in fuse bits. dar la fel, prin alte parti, nu se garanteaza. e drept ca multi spun ca au reusit astfel...ok, deci sa zicem ca se poate. acum vine alta chestie: softul respectiv poate fi portat pentru atmega8? ca am cateva atmega8 si as vrea sa le folosesc pt asa ceva...la mine in oras nu prea aduc microcontrolere, probabil doar pe comanda...si decat sa fac comanda la magazinul local mai bine fac comanda pe net...si pentru 2-3 microcontrolere nu se merita...poate ca e mai mult transportul...de asta as vrea sa rezolv problema cu ce am deja..adica atmega8. cer cam multe, nu? Link spre comentariu
nico_2010 Postat Noiembrie 21, 2017 Partajează Postat Noiembrie 21, 2017 Ai sursa, ai documentatie, modifici sursa(a.i. sa ai corespondenta intre registri), verifici si tot asa pana il faci sa functioneze! E simplu, dar e o operatiune mancatoare de timp, insa asa inveti ceva. Link spre comentariu
gabitzu2006 Postat Noiembrie 21, 2017 Partajează Postat Noiembrie 21, 2017 aha...perfect de acord cu tine...urmeaza sa intru in concediu...oare voi reusi anul asta? oricum, mi-am comandat uc-ele...incet incet poate reusesc... Link spre comentariu
zvonacfirst Postat Ianuarie 30, 2020 Partajează Postat Ianuarie 30, 2020 (editat) Va salut. Am un ATmega328 pe care vreau sa-l programez cu doua fisiere hex. Unul se numeste program.hex si celalalt eeprom.hex. Am incercat cu AVR Burn-O-Mat dar imi vede doar flash-ul, nu imi vede fisierul eeprom.hex desi cele doua fisiere sunt in acelasi folder. I-am spus ce programator am, a detectat microcontroller-ul dar nu am mers mai departe din cauza descrisa mai sus. Cu AVRDUDESS se intampla la fel. O idee... sau doua? Multumesc. Editat Ianuarie 30, 2020 de zvonacfirst Link spre comentariu
nico_2010 Postat Ianuarie 30, 2020 Partajează Postat Ianuarie 30, 2020 (editat) In primul rand, ce programator ai? In al doilea rand, cred ca fisierul EEPROM ar trebui sa aiba extensia .eep si de aici confuzia. L.E.: Acum m-am uitat sa vad ce stie sa faca softul cu pricina si se pare ca accepta si extensia .hex Ai incercat sa apesi butonul "File" in zona EEPROM? Editat Ianuarie 30, 2020 de nico_2010 Link spre comentariu
zvonacfirst Postat Ianuarie 30, 2020 Partajează Postat Ianuarie 30, 2020 (editat) Acum 4 ore, nico_2010 a spus: In primul rand, ce programator ai? USBASP Nu programatorul este problema din moment de detecteaza tipul MCU-ului. Acum 4 ore, nico_2010 a spus: Ai incercat sa apesi butonul "File" in zona EEPROM? Am scris ca nu il vede in folderul unde se afla. Adica am ajuns pana acolo aratandu-i calea. Acum 4 ore, nico_2010 a spus: fisierul EEPROM ar trebui sa aiba extensia .eep si de aici confuzia. Am sa verific chestia asta diseara, adica ce extensii de fisiere accepta. Ar fi o explicatie desi este greu de crezut, EDIT: Dupa actualizarea AVRDUDESS imi vede si eeprom.hex. Dar mai am o intrebare referitor la fusebits. Am un fisier text in care scrie asa: Low: E2 High: D1 Extended: 05 Am scris aceste valori si primesc ok pentru Low si High dar failed pentru Extended. Daca dau Read la fuses in AVRDUDESS imi citeste L: 0xE2 H: 0xD1 E: 0xFD Care sa fie treaba? _WRITINGINGFUSES ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ >>>: avrdude -u -c usbasp -p m328p -P usb -B 0.5 -U lfuse:w:0xE2:m -U hfuse:w:0xD1:m -U efuse:w:0x05:m avrdude.exe: set SCK frequency to 1500000 Hz avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude.exe: Device signature = 0x1e950f (probably m328p) avrdude.exe: reading input file "0xE2" avrdude.exe: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude.exe: 1 bytes of lfuse written avrdude.exe: verifying lfuse memory against 0xE2: avrdude.exe: load data lfuse data from input file 0xE2: avrdude.exe: input file 0xE2 contains 1 bytes avrdude.exe: reading on-chip lfuse data: Reading | ################################################## | 100% 0.01s avrdude.exe: verifying ... avrdude.exe: 1 bytes of lfuse verified avrdude.exe: reading input file "0xD1" avrdude.exe: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude.exe: 1 bytes of hfuse written avrdude.exe: verifying hfuse memory against 0xD1: avrdude.exe: load data hfuse data from input file 0xD1: avrdude.exe: input file 0xD1 contains 1 bytes avrdude.exe: reading on-chip hfuse data: Reading | ################################################## | 100% 0.01s avrdude.exe: verifying ... avrdude.exe: 1 bytes of hfuse verified avrdude.exe: reading input file "0x05" avrdude.exe: writing efuse (1 bytes): Writing | ***failed; ################################################## | 100% 0.05s avrdude.exe: 1 bytes of efuse written avrdude.exe: verifying efuse memory against 0x05: avrdude.exe: load data efuse data from input file 0x05: avrdude.exe: input file 0x05 contains 1 bytes avrdude.exe: reading on-chip efuse data: Reading | ################################################## | 100% 0.01s avrdude.exe: verifying ... avrdude.exe: verification error, first mismatch at byte 0x0000 0xfd != 0x05 avrdude.exe: verification error; content mismatch avrdude.exe done. Thank you. Editat Ianuarie 30, 2020 de zvonacfirst Link spre comentariu
zvonacfirst Postat Ianuarie 31, 2020 Partajează Postat Ianuarie 31, 2020 Am gasit raspunsul in Fuse bits calculator, asa cum se poate vedea in chenarul rosu. Deci sper sa fie de bine. 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