mars01 Postat Octombrie 10, 2017 Partajează Postat Octombrie 10, 2017 (editat) Nu stiu daca ai realizat dar listingul de mai sus nu este un exemplu de editare ci este o modificare pentru controllerul tau, cu watchdog-ul activ si cu implementarea solutiei de updatare a LCD-ului doar cand se schimba starea pompei si/sau a hidroforului. Ce ii lipseste este posibilitatea de a schimba starea pompei asa cum ai mentionat tu ca vrei in postul #326. Editat Octombrie 10, 2017 de mars01 Link spre comentariu
mars01 Postat Octombrie 10, 2017 Partajează Postat Octombrie 10, 2017 Imi pare rau dar nu stiu exact cum se comanda in impulsuri o pompa. In frecventa sau PWM .. etc Daca se detaliaza exact functionarea este posibil sa se poata implementa cu usurinta. Link spre comentariu
catalin004 Postat Octombrie 11, 2017 Partajează Postat Octombrie 11, 2017 (editat) Da...acum am observat modificarile....studiez la program.... Editat Octombrie 11, 2017 de catalin004 Link spre comentariu
catalin004 Postat Octombrie 16, 2017 Partajează Postat Octombrie 16, 2017 Salutare....am lasat de o parte vechiul proiect si lucrez la alta aplicatie: Am o intrare ADC, 10 biti, prin care controlez iesirea unui PWM, de la 0...5V respectiv 0..duty100%. Partea asta am facut-o, insa as vrea sa pun pe afisaj duty, adica sa afisez cat la % este atunci PWM-ul sau tensiunea...am reusit sa fac un bargraf pe prima linie, de la 0..16, insa nu reusesc cu afisarea duty...rog un pic de ajutor Link spre comentariu
catalin004 Postat Octombrie 16, 2017 Partajează Postat Octombrie 16, 2017 Atasez codul...am cam rezolvat problema, insa am probleme cu bara de bargrapf...imi face refresh si se vede urat pe display...daca are cineva o idee? #define buton_dir TRISC.F4 //butonul pe intrarea RC4 #define buton PORTC.F4 #define LCD_stff.c //inserare date de iesire LCD #define INPUT 1U // input ca 1 unsignde #define OUTPUT 0U //output ca 0 unsigned // enumeratie anonime pentru a salva diferite stari enum { OFF = 0, ON = 1 }; unsigned long int BarSegmentNum,Vin,Iin,amp,V,diff,pvmduty; char adcprint, i,m,duty=0; unsigned int Displayvolt; const char character[] = {31,31,31,31,31,31,31,31}; //functie creare linii pe display pr bargrapf void CustomChar(char pos_row, char pos_char) { char ip; Lcd_Cmd(64); for (ip = 0; ip<=7; ip++) Lcd_Chr_CP(character[ip]); Lcd_Cmd(_LCD_RETURN_HOME); Lcd_Chr(pos_row, pos_char, 0); } //functie afisare procentaj(ex tensiune) void tensiune() { char op[12]; char a,i,j,ch,lcd[6]; Lcd_Out(2,1,"Speed="); // Mesaj principal => linia a 1-a Vin= ADC_Read(0); // Citire ADC V = Vin/10; // Convertire rezultat in milivolti sau multiplu in functie de zecimale ch = V/1.02; // raport la numarul de biti 1020 ByteToStr(ch,op); //convertire pentru afisaj LCD_Out(2,7,op); //afisare pe LCD LCD_Chr_CP('%'); // Afisare caracter 'V' la final Delay_ms(10); } //functie afisare bargrapf void bar() { Vin= ADC_Read(0); //citire ADC(acelasi ADC) if (diff != Vin) { Lcd_out(1,1," "); BarSegmentNum = Vin/(1023/16); // Calculate numbers of bar graph segments for (i=0;i<BarSegmentNum;i++) // Loop to print each bar segment in second row { CustomChar(1,i+1); // Print custom character for bargraph segment } { CustomChar(1,i-1); } } Delay_ms(100); // Stabilize LCD display diff = Vin; } void pvm() { PWM2_Init(45000);//setare pwm la 5000hz PWM2_Start(); // PWM2_Set_Duty(duty);//setare ciclu Vin= ADC_Read(0); // delay_ms(10); PWM2_Set_Duty(Vin/4); } void page1() { //LCD_Out(2,5,"PWM duty"); //tensiune(); bar(); tensiune(); pvm(); } void main() { TRISA=1; TRISA=0xFF; //configurare afisaj Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); ADCON1=0x80; for(;;) { page1(); } } Link spre comentariu
stone100 Postat Decembrie 8, 2017 Partajează Postat Decembrie 8, 2017 (editat) start banksel TRISB movlw 0xF00 movwf TRISB banksel PORTB main bcf PORTB,0 ; nop ; nop call delay8b bsf PORTB,0 call delay8b SAlut , am si eu o intrebare , cum pot aprinde un led de la pinul SCL , ca tot incerc si nu imi iesa PIC16F876A Editat Decembrie 8, 2017 de stone100 Link spre comentariu
mars01 Postat Decembrie 8, 2017 Partajează Postat Decembrie 8, 2017 Care este legatura intre codul in asamblare postat si faptul ca doresti sa "aprinzi un LED de la pinul SCL"? Link spre comentariu
stone100 Postat Decembrie 9, 2017 Partajează Postat Decembrie 9, 2017 trebuie sa se aprinda de la acel pin un led iar eu nu imi pot da seama , am schimbat bancurile , eticheta si nu pricep de ce nu vrea Link spre comentariu
mars01 Postat Decembrie 9, 2017 Partajează Postat Decembrie 9, 2017 (editat) Nu cunosc f bine asamblare si pentru aceasta trebuie sa caut pe net sintaxa instructiunilor (ceea ce nu am timp acum) dar in: movlw 0xF00 0xF00 este un cuvant pe 12biti. Controller-ul tau este pe 8bit. Nu stiu ce vrei sa faci acolo, dar daca vrei ca 4 pini sa fie INPUT si 4 pini sa fie OUTPUT atuci corect este: movlw 0xF0 Ulterior, poti sa schimbi intre ele liniile: bcf PORTB,0 bsf PORTB,0 In felul acesta poti vedea ca LED-ul tau (probabil conectat pe unul din pinii OUTPUT ai portului B) este activ. Daca tot nu iti merge, verifica configurarea uC-ului, in special partea de oscilator (nu am citit datasheet-ul, poate ca nu este nevoie decat de registrii CONFIG, mai ales daca ai un cuartz extern). Si daca acolo totul este OK atunci prb poate fi de la rutina ta de delay, delay8b. Editat Decembrie 9, 2017 de mars01 Link spre comentariu
bercenaru Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 Buna ziua, Incep prin a zice ca sunt NUL in ale programarii, dar vrea sa fac acest montaj ( DRL ) si am inteles ca trebuie programat acel IC pentru a functiona. Nu stiu de unde sa incep si cu ce sa incep. Va rog sa ma ajutati cu programarea sau indrumati pentru a o face. Multumesc. Link spre comentariu
mars01 Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 Buna ziua, Daca sunteti in stare sa cititi acest topic si sa intelegeti ceva atunci probabil ca veti putea sa va creati propriul firmware. Daca nu, atunci urmati recomandarile din text: Citat Kit-ul DRL - Daytime Running Lights poate fi obtinut de la autor, scriind la adresa [email protected] Omul acela incearca sa creeze ceva, montajul la care faceti referire este unul comercial si daca pretul nu este nesimtit atunci cred ca este mai de bun simt sa il achizitionati de la el. Link spre comentariu
vijelie02 Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 (editat) Acel montaj este contra cost. Daca vreti sa realizati acel montaj fara a avea cunostinte de programare, inseamna ca cineva de pe forum sa va realizeze software-ul. Ceea ce nu cred. Editat Mai 17, 2020 de vijelie02 Link spre comentariu
bercenaru Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 Am incercat de nenumarate ori sa intru in contact cu autorul, dar nu raspunde la nici un fel de mesaj. As plati si cuiva de pe forum care este dispus sa imi faca acest software. ''(...) Daca sunteti in stare sa cititi acest topic si sa intelegeti ceva atunci probabil ca veti putea sa va creati propriul firmware. '' Nu este o problema asta, dar fiindca o iau de la zero cine stie cand fi in stare sa imi fac propiul software. De aceea preferam niste ajutor/sfaturi sa stiu de unde sa incep. Deci, o sa incep sa ''frunzaresc'' acest topic. Multumesc. Link spre comentariu
cirip Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 Acum 4 ore, bercenaru a spus: dar vrea sa fac acest montaj ( DRL ) Salut, Am incercat sa ma uit sa vad daca te pot ajuta, dar ... Link spre comentariu
validae Postat Mai 17, 2020 Partajează Postat Mai 17, 2020 (editat) Nu ştiu dacă va fi dispus cineva să piardă timp ca să-ţi conceapă gratis un cod ce va fi folosit poate în scop comercial.Cred că e mai simplu şi ieftin să cumperi (30-60 Lei)un modul din ăla, sau să construieşti unul care nu e bazat pe microcontroller.Deşi ar fi destul de complicat să faci toate funcţiile fără controller, se poate face cu circuite logice CMOS...colegul Ticu, de exemplu ar putea să te ajute cu ceva de genul, dacă îl contactezi. Editat Mai 17, 2020 de validae 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