Jump to content
ELFORUM - Forumul electronistilor

Light dimmer cu PIC12F cod sursa


Recommended Posts

Stiti cumva un proiect de light dimmer cu pic 12F care sa aiba si codul sursa, nu doar HEX?Stiu ca au mai fost discutii aici despre programe pentru dimmer, dar eu vreau ca schema sa includa si sursa cu suprimare capacitiva.Nu am de gand sa-l copiez sub nicio forma, e doar un punct de start. Va avea probabil si recunostre vocala 'stinge lumina!'

Link to comment
  • Replies 37
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Da, ai dreptate, m-am uitat numai la sfarsitul fisierului, unde e dat "listingul" (fisierul .lst) generat de compiler. Si cum ala e in assembler...Sorry.Oricum ar fi interesant de vazut daca merge compilat (direct sau cu modificari mici) cu xc8.

Edited by Liviu M
Link to comment

Am compilat cu MPLAB 8.20 + C

si programul nu merge chiar din prima compilat. Mai trebuiesc unele modificiari.

 

Am sa inlocuiesc cu 12F675 sau 12F683.

 

Ce mi se pare prost facut in acest program este ca nu folosec sleep.  Corect?

 

Apesi pe butonul telecomenzii senzorul ala da 0 sau 1 (0 la puls luminos 1 standard idle).

Ambele tranzitii pot scoate interatul din sleep.  

 

Cineva spune ca a ajuns expert in intreruperi. Daca se poate, sa explice iesirea din sleep si cat timp ia.

e mai greu cu sleep pentrucei care nu fac decat C.

 

De multe ori mi-a iesit iesirea din sleep, dar au fost si cazuri cand nu a mers:

-Global interrupt enable

- setezi intrerupera  la port change

- alegi intre intarea defaut GP3 cred si alt port.

- la tranzitia carui bit din port iesie din sleep

 

Daca se poate, sa le spuneti cu valori, exact cum vin!

 

FIozofia:

 

Daca are sleep, atunci cand lumina e stisa, nu merge in continuu, deci nu e uzart. Riscul de blocare e foarte mic.

Cand aprinzi lumina iese din sleep, dar nu cred ca mai poarte fi folosit WDT. Gresesc ?

Se poate seta WDT in timp ce ruleaza iar cand isi ia sleep sa nu lucreze WDT?.

Stiu ca ambele pot fi sertarte, dar WDT il va scoate obligatoriu din slee periodic.

 

Daca folosesc sleep si nu se mai poate seta in timpul rularii programului WDT, atunci exisrta riscul sa se blocheze in trimp ce becul e aprins.

Dar mai mic. Ca tii becul aprins 1-2-3 ore, dar srtins il tii  rtoata ziua + mai toata noaptea. Risc mult mai mare.

 

"Fratilor" am facut multe montaje.  La alarma auto cu PIC pe care v-am prezentat-o, la test a mers perfect. Cand am lasat Dacia in parcare 3luni (de funcrtionare continua a acelui pic).... dau la telecomda si ...pauza. A trebuit  sa-mi sparg propria masina.

Edited by Mondan
Link to comment

Eu am download-at MPLAB 8.20 de pe pagina oficiala.

 

La instalare a venit la pachet cu un C trial. Dupa ce am instalat MPLAB "m-a intrebat": "vreti sa instalati si C".

 

Aia in PDF ar fi fost corect sa dea si cu ce compilartor au compilat. Asa e "protocolul".

Link to comment

un program bine facut nu se blocheaza

in C este mai simplu sa foosesti sleep, are functie gata definita

ca sa zic cum functioneaza WDT trebuie sa citesc pdf-ul la PIC

la PIC32 merge sigur sa dezactivezi WDT inainte de a intra in sleep, iar la iesire sa il activezi din nou

Link to comment

la PIC 12F si la PIC 16F  WDT se seteaza din __config

 

Nu exista instructiune in program sa il dezactiveze pe WDT.

 

Doar daca am putea modifica pe __config in tipul rularii.

 

Slab probabil deoarece bitii __config sau "fuse" cred ca ii numesc se seteaza de catre programator intr-o locatie de memorie separata de blocul principal.

 

Apoi de la PIC 18F in colo..PIC30F PIC33F  ele sunt capabile sa isi scrie propriul flash. Merge  sa pui doar un bootloader si se scriu singure.

 

PIC12F si PIC16F nu sunt capaile sa isi scrie singure flashul.

------------------------------

<Acum cati ani?> Multi. Aveam fisierul salvat pe un CD vechi. Zici sa incerc cu compilatoare mai noi ?

Bun. De unde downloadez MPLAB nou ?

Link to comment

Chiar si pe 12F mai noi ai posibilitatea sa controlezi WDT. Poti sa-l opresti sau sa-l pornesti din soft, oprit total sau oprit in sleep, in functie de ce ai setat in config.

De ex 12F1840: http://ww1.microchip.com/downloads/en/DeviceDoc/41441B.pdf  la pagina 93.

Flash-ul si eeprom-ul pot fi scrise cu bootloader si la PIC10F322 de exemplu. Depinde de generatia controllerului nu de clasa din care face parte. Cu config_word ii alta poveste da nu-i neaparat necesar sa-l rescrii pentru acelasi proiect.

Un bootloader mic si eficient ar fi asta: http://sourceforge.net/projects/tinypicbootload/

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines