Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

Nu asa se face. Incearca asta:

'*************************Dim Schimba As Byte'*************************On Int1 _schimbaEnable Int1Config Int1 = FallingEnable Interrupts'*************************_schimba:  B = Iastare()  Locate 1 , 5  Lcd B  If B = 0 Then     Status = Deschideporti()  End If  If B = 1 Then      Status = Inchideporti()  End If  Schimba = 1Return'*************************
Link spre comentariu

ok, am rezolvat-o mai din topor. Am folosit un pin al uC-ului pe post de buton (altul decat int0/int1).

Ceva de genul:

 

Do   If Pinb.7 = 1 Then      Gosub Schimba      Cls   End If   Locate 1 , 1   Lcd "Idle..."   Waitms 50Loop

 

functioneaza perfect pentru ce am eu nevoie deoarece impulsul de pe acel pin dureaza de la 300 ms la 8 secunde in functie de cat il setez.

 

Totusi nu inteleg de ce mama masii nu functioneaza corect cu interrupts

Link spre comentariu

Ca să faci un pin din port intrare sau ieşire, bitul corespunzător din DDRx trebuie pus 0, respectiv 1.Încearcă aşa:

PORTC = 0x00;DDRC = 0x7F;
adică trebuie să copiezi valorile din fostul port.
nu reusesc nimic....uite cum am facut:am renuntat la a debifa resetul...am facut un cablaj pentru atmega8 mlf; am deschis codevision am dat new project, am selectat atmega8 am dat ok la tot ce mi-a zis acolo, dupa care a facut codevision un proiect ciudat...am sters tot si in fereastra respectiva am facut 'paste' la proiectul cu attyny. am sters attiny si am scris "mega8.h" am dat compile si apoi build dar imi apare eroare la DDRB[zice ca nu e definit] am schimbat pe DDRC am dat build si am scris softul in atmega nu afiseaza nici un caracter inteligibil .daca scriu softul cu attini pe atmega8 apare34c si sta asa [cred ca nu merge oscilatorul intern cu toate ca am setat fusebitii pentru oscilator intern 4MHz] un pic de ajutor va rog
Link spre comentariu

Poţi folosi liniştit pinii de cuarţ ca intrări, rămîne doar să foloseşti oscilatorul RC intern. [/code]

am modificat la attiny pe oscilator intern de 4MHz si merge {chiar si cu 8MHz am incercat si tot merge[diferenta e ca se intrerupe mai des la afisare si nu am verificat daca afiseaza corect temperatura pe mai multe puncte]}la atmega nu vrea si pace ...nu stiu ce sa fac...am scris softul original pentru attiny si afiseaza 34C sau 0C daca il pun pe cel compilat de domnul "ratza" si nu mai face nimic... daca il compilez eu in codevision dupa ce m-am inspirat de la domnul "ratza" si inlocuiesc attini2313.h cu mega8.h nu mai merge nimic (nu afiseaza) :sparge:
Link spre comentariu

Revin cu inca o problema, de data asta de logica/abordare.

 

Trebuie sa calculez un debit in functie de lungimea impulsurilor (nu pot sa calculez doar dupa numarul impulsurilor pentru ca ar fi eroarea prea mare).

 

Caz concret, se da un rezervor cu presiunea de 5 bari si o supapa comandata PWM.

Stiindu-se debitul intr-un interval de timp trebuie sa pot calcula cata "apa" s-a scurs prin acea supapa in functie de lungimea impulsurilor de comanda.

 

 

Am incercat ceva de genul:

Dim I As Integer , J As IntegerI = 0j = 0Do  Incr I  If Pind.4 = 1 Then      Incr J  End If  If I > 10000 Then  Locate 1 , 1   Lcd J ; "     "   J = 0   I = 0  End IfLoop
insa nu functioneaza de nici o culoare cum ar trebui...
Link spre comentariu
  • 2 săptămâni mai târziu...

iarasi ma lovesc de o problema.

am un lcd albastru cu alb: http://www.tme.eu/ro/details/rc1602bb/a ... b-biw-esx/ si nu functioneaza orice contrast as regla.

 

pinii i-am legat corect, uC-ul trimite datele (db5 si db6 stau in 5V cel mai mult timp, exact ca in simulare, E si RS sunt conectati corect).

LCD-ul este nou.

 

P.S. Cu acelasi uC pe un LCD verde/negru pe o alta placa de test cu liniile de date inversate imi apar niste hieroglife, deci presupun ca si pe asta albastru trebuia sa apara ceva daca era conectat incorect. Alimentarile sunt bune, 5.1V.

Link spre comentariu

Azi am facut o traznaie. E prima oara cand ma joc cu microprocesoare, si dupa mai multe programari ale unui atmega 16, am dat in SynaProg la Fuses Ext. Crys. si integratul nu mai face nimic.Il mai pot repara cumva? Programatorul pe care il detin este UsbAsp, de la userul Ole, iar integratul este unu smd in capsula patrata.

Link spre comentariu

Nici o problema! Nu te impacienta. Ai nevoie de un oscilator extern care sa re-invie uC-ul. Poti sa folosesti unul cu frecventa mai mare de 10MHz pana la vreo 25MHz. Il alimentezi cu tensiune de 5V apoi iesirea lui o cuplezi la terminalul 13- "XTAL1". Dupa care uC-ul la USB-ASP si-l citesti din nou. La prima citire intri in fusebiti si setezi OSC INT 4MHz. Dupa asta poti sa scoti din uz acel oscilator integrat extern. Stai linistit ca au patit-o si altii "de la case mai mari" nu numai tu!Succes!

post-14595-139829450101_thumb.jpg

Link spre comentariu

Azi am facut o traznaie. E prima oara cand ma joc cu microprocesoare, si dupa mai multe programari ale unui atmega 16, am dat in SynaProg la Fuses Ext. Crys. si integratul nu mai face nimic.

 

Il mai pot repara cumva? Programatorul pe care il detin este UsbAsp, de la userul Ole, iar integratul este unu smd in capsula patrata.

Pune un cristal extern mai mare de 10 MHz cu tot cu condensatorii pe care ii vezi in datasheet, la atmega16 sectiunea oscilator extern, conectat in aer cu fire si apoi il vei putea reprograma fuse bitii.

Dupa ce ai selectat Intern 8Mhz RC oscilator , poti dezlipi cristalul si condensatorii si gata.

Este bun si cristalul de 12 MHZ pe care ai zis ca il ai. Condensatorii de 10 pico sunt la limita dar incearca cu ei .Daca nu porneste oscilatorul (adica nu-l vezi cu programatorul pe microcontroler !) dubleaza valoarea la 20pico pentru ambii condensatori.

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