Vizitator rapo Postat Iulie 10, 2010 Partajează Postat Iulie 10, 2010 E vorba despre EVB4.3, cam asta e manualul. Treaba e ca sunt doar begginer in domeniu si nu stiu detalii foarte multe,daca nu am manual sau ceva sa ma prind mai greu. Deci placa asta o poti programa in 2 feluri,teoretic: 1. Am cumparat un programator AVBPRG-T(stk500) cu care cica il pot programa, l-am instalat,am avut driverele date de ei, imi vede in device manager AVR Dopler dar nu pot sa programez nimic cu el, imi zice ca nu-l vede, am incercat pe 2 pc-uri, aceleasi instalari si nu merge pe nici unu 2. Cu avrdude pot programa placa fara un programator aditional,cu asta merge programarea dar nu merge placa,daca dau un program de test pt LCD, sa-mi arate temperatura de la senzorul de temp de pe placa, nu-mi apare nimic,orice program de test dau nu merge. Programele de test le am de pe site-ul lor de aici. Am citit pe ceva blog al unui care a folosit placa asta si scria ca sa folosesc pt fuses Fuses: High=0×89, Low=0xFF, default fiind alte valori. Link spre comentariu
vasile eugen Postat Iulie 10, 2010 Partajează Postat Iulie 10, 2010 Programele acelea merg fara sa setezi altceva.Dupa ce ai deschis acel pachet cu exemple ,iti iai cite unul pe rind le compilezi fara sa umbli in alta parte la setari si trebuie sa-tifunctioneze. Link spre comentariu
MifTy Postat Iulie 11, 2010 Partajează Postat Iulie 11, 2010 E vorba despre EVB4.3, cam asta e manualul. Treaba e ca sunt doar begginer in domeniu si nu stiu detalii foarte multe,daca nu am manual sau ceva sa ma prind mai greu. Deci placa asta o poti programa in 2 feluri,teoretic:1. Am cumparat un programator AVBPRG-T(stk500) cu care cica il pot programa, l-am instalat,am avut driverele date de ei, imi vede in device manager AVR Dopler dar nu pot sa programez nimic cu el, imi zice ca nu-l vede, am incercat pe 2 pc-uri, aceleasi instalari si nu merge pe nici unu2. Cu avrdude pot programa placa fara un programator aditional,cu asta merge programarea dar nu merge placa,daca dau un program de test pt LCD, sa-mi arate temperatura de la senzorul de temp de pe placa, nu-mi apare nimic,orice program de test dau nu merge. Programele de test le am de pe site-ul lor de aici. Am citit pe ceva blog al unui care a folosit placa asta si scria ca sa folosesc pt fuses Fuses: High=0×89, Low=0xFF, default fiind alte valori.1. poţi da un link de unde ai cumpărat programatorul ăla??? nu de alta, dar am impresia că ori ai luat o clonă de stk500 pe usb, ori un programator isp care nu prea are nimic comun cu stk500.mai ales că zici că are drivere de "AVR Dopler", de fapt e AVR Doper, şi e un programator avr isp pe usb... vezi pe-aici că sunt câteva topice în care se discută despre el.uf, m-am uitat mai în urmă... da, ai un avr doper.driverele îţi instalează un port com virtual, care port o să aibă cifra mai mare de clasicul 4, gen COM10.com0com este necesar ca să "legi" COM10, unde este "văzut" doperul tău cu COM2, de pildă, care e unul din cele 2 porturi COM pe care le "vede" AVR Studio.asta înseamnă că trebuie să instalezi pe lângă driverele doperului şi softul ăla, com0com.notezi ce port COM e asignat doperului, verifici dacă ai liberi COM1 sau COM2, care sunt "văzuţi" de AVR Studio, şi cu com0com conectezi cele 2 comuri.faci asta cu doperul conectat la pc, altfel nu-ţi apare COMxx ăla virtual!!!după asta porneşti studioul, şi la programator pui stk500 şi comul la care l-ai legat cu com0com.ţi-aş face nişte screenshoturi, dar n-am avrdoper, io am siprog deocamdată, iar doperul e un fel de "proiect de viitor"...în avrdude îţi merge ok pentru că deja avrdude "ştie" de doper, AVR Studio nu "ştie" decât de plăcile de la atmel, şi atât...placa de dezvoltare iar ţi-o vede avrdude pentru că include, şi deja instalase driverele de ft232 în sistem, şi "vorbea" cu mcu prin Rx/Tx!!!vezi în pdf-ul pe care ni l-ai dat, că se spune acelaşi lucru cu ce-am zis eu mai sus, minus partea referitoare la avrdude şi placa de evaluare, doar că în engleză: http://www.and-tech.pl/Stk500/AVRProgUSB-v1.3-ang.pdfpe lângă asta, asigură-te că ai pus jumperii astfel încât doperul să "ceară" să fie văzut ca un COM virtual. deci nu HID, da??? altfel merge doar cu avrdude!!!2. după ce scrii cu succes, adică să nu-ţi dea erori la scriere sau verificare, deconectează cablul cu 10 fire, dacă pe ăla l-ai folosit la programare, lasă usb conectat la placă... sau mai bine scoate-l şi conectează la headerul ăla albastru lângă care scrie "power" o sursă de tensiune stabilizată oarecare, de minimum 7-8 volţi (merge şi o baterie de 9 volţi, cred, şi nu greşi polaritatea la conectare, că iar n-o să meargă!!! de stricat nu se strică, ai o "diodă antiprost" imediat după mufe), apoi vezi că e pe lângă mcu un buton de "reset". apasă-l, apoi vezi ce se întâmplă.cel mai bine e să-ţi faci un mic alimentator, filtrat şi nestabilizat de circa 12-13 volţi, pe care să-l foloseşti cu placa de dezvoltare...programatorul, avr doper, nu are nevoie de alimentare externă.va trebui să scoţi jumperul de alimentare a plăcii din usb dacă pui alimentare externă, vezi pagina 7 a manualului plăcii de dezvoltare.cu jumperul ăla scos, poţi lăsa conexiunea usb cu calculatorul cât timp ai placa de dezvoltare alimentată extern, dar dacă uiţi jumperul pus, cam rişti să prăjeşti ceva: usb-ul calculatorului, ft-ul de pe placă, sau ambele!!! şi dacă ai "noroc", şi mcu-ul!!! va trebui să te hotărăşti cum programezi placa:- ori din usb, direct din pc- ori prin intermediul doperului şi al headerului de 10 pini de pe placa de dezvoltare (ăla prezentat pe pagina 6 a plăcii). Link spre comentariu
Vizitator rapo Postat Iulie 19, 2010 Partajează Postat Iulie 19, 2010 Scuzati de intarziere dar am fost plecat o saptamana de acasa, ideea e ca am reusit sa-l programez cu programatorul extern cu Avr Studio 4. Am intampinat o alta problema si anume, placa are un lcd pe 2 randuri si pe site-ul producatorului placii sunt cateva programe de test pentru componentele de pe placa si este si pt lcd, ei, daca vreau sa incarc un program pt testarea lcd-ului nu-mi functioneaza deloc, adica primul rand de pe ecran are toti pixelii negrii si nu face nimic. Placa vine cu un programel initial incarcat, am facut rost de hex-ul acelui programel, il incarc si imi merge ecranul....programul respectiv numara ceva(nu secunde oricum) Link spre comentariu
DarkAngel_Bv Postat Iulie 20, 2010 Partajează Postat Iulie 20, 2010 Postez si eu aici pentru ca nu doresc sa deschid un topic nou. Exista vreun soft pentru simulare atmega?de exemplu sa fac schema in eagle sau alt program, sa incarc hex-ul sau codul sursa in program si sa pot pune pe intrari impulsuri si chestii de genul.Multumesc anticipat. Link spre comentariu
Stefan Postat Iulie 20, 2010 Partajează Postat Iulie 20, 2010 Proteus VSM, nu cunosc altul mai animat si mai simplu. Link spre comentariu
DarkAngel_Bv Postat Iulie 20, 2010 Partajează Postat Iulie 20, 2010 Bun, deja am ajuns la un alt nivel dupa cateva ore de chin. Am incercat sa citesc niste valori cu functia getrc. Merge doar pe ADC sau si pe portd? Este vorba de un atmega 8. in exemplul din help este conectat pe un portd. Eu am incercat si nu merge :sparge:Acum vreau sa afisez frecventa unor impulsuri pe LCD (am nevoie in viitorul proiect). Am citit ceva despre interrupts. Aveti ceva documentatie despre cum se folosesc aceste interrupts cu bascom?Multumesc. Link spre comentariu
Vizitator rapo Postat Iulie 22, 2010 Partajează Postat Iulie 22, 2010 Din nou revin cu o problema legata de placa de dezvoltare EVB4.3, are placa librarii pentru toate componentele, dar lcd-ul nu imi functioneaza cu librariile respective, am observat ceva in fisa de descriere a placii, LCD are legat pinul R/W la masa..deci nu e controlat prin port, am gasit o alta librarie pt controlerul HD44780 care e pe placa, unde imi cere sa conectez linia R/W la unul dintre pinii portului. Cum procedez in cazul de fata? Orice as incerca sa fac cu LCD-ul nu merg nimic pe el, am doar cateva programe de test care fuctioneaza bine,dar sunt in hex. Link spre comentariu
nana Postat Iulie 22, 2010 Partajează Postat Iulie 22, 2010 Din nou revin cu o problema legata de placa de dezvoltare EVB4.3, are placa librarii pentru toate componentele, dar lcd-ul nu imi functioneaza cu librariile respective, am observat ceva in fisa de descriere a placii, LCD are legat pinul R/W la masa..deci nu e controlat prin port, am gasit o alta librarie pt controlerul HD44780 care e pe placa, unde imi cere sa conectez linia R/W la unul dintre pinii portului. Cum procedez in cazul de fata? Orice as incerca sa fac cu LCD-ul nu merg nimic pe el, am doar cateva programe de test care fuctioneaza bine,dar sunt in hex.Pai tu din LCD nu o sa citesti nici odata caractere deci tot timpu tu o sa scrii caractere deci trimiti date catre el. De acea se conecteaza R/W la masa adica LCD-ul o sa fie tot timplul in modul Write. Daca iti merge cu alte softuri(hexuri) lcd-UL inseamna ca totul e ok dpdv electronic deci probleme la soft. Link spre comentariu
ramsesrr Postat August 14, 2010 Partajează Postat August 14, 2010 Nu inteleg un lucru,de ce variabila w din portiunea de cod cu bold nu se modifica in exteriorul functiei isr().Cand o folosesc in main are mereu valoarea 0.Care sa fie problema? #include <avr/io.h>#include <inttypes.h>#include <stdlib.h>#include <stdio.h>#include <util/delay.h>#include <avr/interrupt.h>///////////////////////////////////////unsigned char SMSFlag=0,SMSReadFlag=0,ButtonPressed=0; unsigned int timer0_counter=0; unsigned int i=0,j=0,k=0; unsigned char testMessage[]="Hello! this is Test Message!!!"; unsigned char ctrlZ=0x1A; //unsigned char cmd_cpms[]="AT+CPMS="ME"\r"; //selectez locatia de memorie preferata/////////////////////////////////////unsigned char cmd_cmgd[]="AT+CMGD=1\r"; //Delete message from index 1 of prefered memory location/////////////////////////////////////unsigned char cmd_cmgr[]="AT+CMGR=1\r"; //Citire mesaj/////////////////////////////////////unsigned char cmd_cmgf[]="AT+CMGF=1\r"; //Text mode /////////////////////////////////////unsigned char cmd_cmgl[]="AT+CMGL=0\r"; // selectare locatie mesaj/////////////////////////////////////unsigned char cReturn[]="\r";//////////////////////////////////// ////////////////////////////////////unsigned char cmd_AT[]="AT\r"; ///////////////////////////////////unsigned char cmd_cgmm[]="AT+CGMM\r"; //identificare model/////////////////////////////////////////////////////void USARTInit(uint16_t ubrr_value){ UBRRL = ubrr_value; UBRRH = (ubrr_value>>8); UCSRC=(1<<URSEL)|(3<<UCSZ0); //UBRR=((f_clk/(BaudRate*16))-1) UCSRB=(1<<RXEN)|(1<<TXEN);}char USARTReadChar(){ while(!(UCSRA & (1<<RXC))) { //Do nothing } return UDR;}void USARTWriteChar(char data){ //Wait untill the transmitter is ready while(!(UCSRA & (1<<UDRE))) { } UDR=data;}/////////////////////////////////////////////void TransmitUSARTC(const char* c){ int i =0; while(c[i]!=0x0 && c[i]!=0xd) { USARTWriteChar(c[i]); i++; }}///////////////////////////////////////void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0xff; PORTC = 0x00; DDRC = 0xFF; PORTD = 0x00; DDRD = 0x00; }////////////////////////////////////////0000 0100uint8_t w=0; ISR(INT0_vect){w++; PORTB=0xff; PORTC=w; if(w>10) { PORTB=0x00; }} void main(){ char data; USARTInit(103); int n,z,l;char b [50];////////////////////////////////////////port_init();GICR|=(1<<INT0); MCUCR |= 1<<ISC10;///////////////////////////////////////sei();//PORTC=w;// Set Text Mode /*TransmitUSARTC("AT+CKPD=");USARTWriteChar('"');USARTWriteChar('"');USARTWriteChar(',');USARTWriteChar('5');USARTWriteChar(',');USARTWriteChar('1');USARTWriteChar('\r');_delay_ms(500); USARTWriteChar('\n');*/n=sprintf (b, "%d", z);TransmitUSARTC("\r \n");/*/////////////////////////////////////////TransmitUSARTC("AT");USARTWriteChar('\r');_delay_ms(500);/////////////////////////////////////TransmitUSARTC("AT+CMGF=1");USARTWriteChar('\r');_delay_ms(500); ///////////////////////////////////TransmitUSARTC("AT+CMGS=");USARTWriteChar('"');USARTWriteChar('"');USARTWriteChar('\r');_delay_ms(50);TransmitUSARTC("trimite");USARTWriteChar('26');*/ while(1) { if(!(PINA & 0b00000010)){ TransmitUSARTC("AT+CKPD="); USARTWriteChar('"'); USARTWriteChar('"'); USARTWriteChar(','); USARTWriteChar('5'); USARTWriteChar(','); USARTWriteChar('1'); USARTWriteChar('\r'); _delay_ms(500); USARTWriteChar('\n'); for(int k=0;k<n;k++) USARTWriteChar(b[k]); USARTWriteChar('\n');} }} Link spre comentariu
stefan_k Postat August 14, 2010 Partajează Postat August 14, 2010 Pe scurt: in main "w"-ul nu se modifica, ca urmare compilatorul face o optimizare si in loc de "w" pune ... valoare lui initiala, zero. Pentru a sti ca acea variabila e modificabila de catre o intrerupere externa (separata de firul principal al programului), e necesar ca variabila sa fie declarata "volatile"; in acest fel compilatorul nu o va mai "optimiza". volatile uint8_t w;Mai multe detalii (si alte chestii bine de stiut) aici http://www.nongnu.org/avr-libc/user-manual/FAQ.html Link spre comentariu
ramsesrr Postat August 14, 2010 Partajează Postat August 14, 2010 Multumesc a mers.Inca ceva cum trimit ctrl+z in interfata seriala? Link spre comentariu
ramsesrr Postat August 14, 2010 Partajează Postat August 14, 2010 Am rezolvat.Am trimis codul ascii 26 si a mers Link spre comentariu
stefan_k Postat August 14, 2010 Partajează Postat August 14, 2010 N-am avut de trimis asa ceva, dar ma gandesc ca se trimite ca orice caracter, Ctrl-Z avand codul hexa 0x1A. Ca urmare: USARTWriteChar(0x1A);Mai departe e treaba "receptorului" sa il interpreteze.Later edit: ai rezolvat inainte; da, 26 zecimal sau 0x1A hexa - acelasi lucru. Link spre comentariu
ramsesrr Postat August 14, 2010 Partajează Postat August 14, 2010 L-am trimis direct in terminal de la tastatura si m-am uitat cu un program de monitorizare a portului serial la caracterul trimis.Pana acum am realizat partea de trimitere a sms-ului de la mcu(pt controlerul gsm) in cazul modificarii unor parametri.Urmeaza partea dificila acum,controlul dispozitivelor. 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