Jump to content
ELFORUM - Forumul electronistilor
nickrvl

Citire conditie pin

Recommended Posts

Ma confrunt cu o "nimicareala" care ma lasat fara idei si anume am urmatoarea schema:

sch.pdf

La apasarea butonului "B1" trebuie sa-mi stinga ledul L1 respectiv sa-l aprinda.....

 

$regfile = "ATtiny24.dat"Ptcum Alias Pinb.1  Config Ptcum = InputLedtermic Alias Pina.6  Config Ledtermic = OutputDoIf Ptcum = 0 ThenLedtermic = 0ElseLedtermic = 1End IfLoopEnd

Numai ca nu merge cum trebuie, la apasarea butonului in mod normal se stinge ledul dar cam in jumatate din situatii in loc sa-l stinga nu reactioneaza de nici un fel ba din contra luminozitatea ledului creste usor.

Am incercat mai multe porturi atit pentru led cit si pentru buton fara rezultat, cum am mai spus am ramas fara idei, un pic de ajutor va rog.

Link to comment
Share on other sites

Trebuie să ştii cînd ridici degetul de pe buton şi să aprinzi ledul atunci. Va oscila în neştire aşa cum ai tu codul

 if (button == 0){  while (button == 0)  {    delay_ms(10);  }  if (led == 0)  {    led = 1;  }  else  {    led = 0;  }}
Link to comment
Share on other sites

Incerc un raspuns scurt la toata lumea, asa cum e "codul" acum ledul este in permanenta aprins, se stinge doar la apasarea butonului, asa ar trebuii sa functioneze. Ma "exaspereaza", nu e primul montaj care il fac si au functionat toate insa acum parca a inebunit, montajul meu este unul SMD, o sa incerc sa dezlipesc si Mc-ul sa mai verific odata tot circuitul dar totusi, de ce merge cind merge..... daca problema ar fi pe cablaj ar trebuii sa nu meraga si gata, acum banuiesc inclusiv Mc-ul."rata" de ce sa oscileze in nestire? urmareste daca butonul este apasat si stinge ledul, altfel ledul va sta aprins, aceasta este logica. Oricum am incercat mai multe variante inclusiv ceva de genul:If Ptcum = 0 Then Ledtermic = 0If Ptcum = 1 Then Ledtermic = 1cu acelasi rezultat, am incercat inclusiv mici intreruperi/pauze cu "delay" si altele....

Link to comment
Share on other sites

Ma confrunt cu o "nimicareala" care ma lasat fara idei si anume am urmatoarea schema:[attachment=0]sch.pdf[/attachment]La apasarea butonului "B1" trebuie sa-mi stinga ledul L1 respectiv sa-l aprinda..... Numai ca nu merge cum trebuie, la apasarea butonului in mod normal se stinge ledul dar cam in jumatate din situatii in loc sa-l stinga nu reactioneaza de nici un fel ba din contra luminozitatea ledului creste usor.Am incercat mai multe porturi atit pentru led cit si pentru buton fara rezultat, cum am mai spus am ramas fara idei, un pic de ajutor va rog.

O solutie la dilema ta ar fi urmatoarea:
$regfile = "ATtiny24.dat"Ptcum Alias Pinb.1  Config Ptcum = Input'activezi rezistenta interna de "pull-up"  Ptcum = 1' PORTA.6 nu PINA.6Ledtermic Alias Porta.6  Config Ledtermic = OutputDoIf Ptcum = 0 Thenwaitms 50Toggle LedtermicEnd IfLoopEnd
Link to comment
Share on other sites

O solutie la dilema ta ar fi urmatoarea:

$regfile = "ATtiny24.dat"Ptcum Alias Pinb.1  Config Ptcum = Input'activezi rezistenta interna de "pull-up"  Ptcum = 1' PORTA.6 nu PINA.6Ledtermic Alias Porta.6  Config Ledtermic = OutputDoIf Ptcum = 0 Thenwaitms 50Toggle LedtermicEnd IfLoopEnd
Nu cred ca trebuie activata rezistenta interna deoarece conform schemei de mai sus pinul este deja legat la potential pozitiv prin R1, "obligatoriu" in aceasta configuratie trebuie sa lucreze, schema este mult mai complexa, aici prezint doar partea cu problema, diseara pot verifica....
Link to comment
Share on other sites

Nu cred ca trebuie activata rezistenta interna deoarece conform schemei de mai sus pinul este deja legat la potential pozitiv prin R1, "obligatoriu" in aceasta configuratie trebuie sa lucreze, schema este mult mai complexa, aici prezint doar partea cu problema, diseara pot verifica....

Am activat rezistenta interna doar pentru a verifica solutia pe care ti-am propus-o. Oricum, o masura de siguranta in plus nu strica si nici nu ocupa mult spatiu de memorie.
Link to comment
Share on other sites

Nu cred ca trebuie activata rezistenta interna deoarece conform schemei de mai sus pinul este deja legat la potential pozitiv prin R1, "obligatoriu" in aceasta configuratie trebuie sa lucreze, schema este mult mai complexa, aici prezint doar partea cu problema, diseara pot verifica....

Am activat rezistenta interna doar pentru a verifica solutia pe care ti-am propus-o. Oricum, o masura de siguranta in plus nu strica si nici nu ocupa mult spatiu de memorie.
Am intele, ramine sa verific.
Link to comment
Share on other sites

Pe situ asta e un baiat care mi-a explicat bine cum se face http://www.newbiehack.com/ButtonorSwitchDebounceinSoftware.aspx

 

# define F_CPU 1000000 // sau ce frecventa ai setat din FUSEBITI

#define numberOfButtons 4 // definesti cate butoane vrei

# include

#include "ButtonPress.h" // incluzi biblioteca

 

 

 

int main()

{

DDRB |= 0<

DDRA |= 1<

while(1)

{

 

if (ButtonPressed(1, PINB, 1, 20)) {PORTA ^= 1<

 

}

 

}

Link to comment
Share on other sites

"nico_2010" sa traiesti, tu mi-ai deschis ochii, configurase-m prost "ledul", acum este bine:$regfile = "ATtiny24.dat"Ptcum Alias Pinb.1 Config Ptcum = InputLedtermic Alias Porta.6 Config Ledtermic = OutputDoIf Ptcum = 0 ThenLedtermic = 0ElseLedtermic = 1End IfLoopEndin montajul meu de fapt nu este un buton ci o diferenta de potential, la minim am 0,53V la maxim am 4,43V dar este suficient, mc-ul raspunde prompt acum.

Link to comment
Share on other sites

"nico_2010" sa traiesti, tu mi-ai deschis ochii, configurase-m prost "ledul", acum este bine:$regfile = "ATtiny24.dat"Ptcum Alias Pinb.1 Config Ptcum = InputLedtermic Alias Porta.6 Config Ledtermic = OutputDoIf Ptcum = 0 ThenLedtermic = 0ElseLedtermic = 1End IfLoopEndin montajul meu de fapt nu este un buton ci o diferenta de potential, la minim am 0,53V la maxim am 4,43V dar este suficient, mc-ul raspunde prompt acum.

Ledtermic=Ptcum nu merge in Basic?
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • 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