Pumunta sa simulang matapos matakpan?

I

ipunished

Guest
Nauunawaan ko na kapag ang isang makatakip nangyayari sa micro controller bumalik sa kung saan ito kaliwa mula sa .. ngunit ang aking matakpan binubuo ng isang itigil lumipat, ibig sabihin, matapos ang iterrupt Gusto ko ito upang ihinto ang lahat ng bagay .. ang aking code ay binubuo ng pagpapatakbo ng isang motor sa isang habang (1) loop .. matapos ang hardware makatakip ay pinindot ito ay dapat itigil ang lahat ng bagay at pagkatapos ay muli maghintay para sa simula button na pinindot .. akala ko ng pagtawag sa function na simulan ang button sa loob ng ISR, ngunit na ay iwan ang stack uncleared. paraan ng anumang upang makakuha ng paligid na ito?
 
maaari mong ilagay ang iyong code at eskematiko ... At din mo nabanggit pagkatapos ng hardware makatakip ay pinindot ito ay dapat itigil ang lahat ng bagay, na nangangahulugan na nais mong controller mismo naka-off o lamang motor ... Kung nais mo ng buong sistema [controller masyadong] na naka-off ako maaari bigyan isa solusyon ... Ito ay maaaring gawin sa pamamagitan ng paglagay ng maliit na hardware circuit ... Paggamit O gate [74HC1G32] at Load lumipat [FPF2100] maaari mong makamit ang isang ito ... O gate ay may dalawang inputs [A at B] B dapat konektado push button [pindutan sa isang dulo ay pumunta sa input ng OR gate at iba pang mga dulo papunta sa VCC sa pull down risistor] at A ay dapat na makakuha ng konektado sa GPIO ng controller, ang output ng O gate [Y] dapat na makakuha ng konektado sa ON [3 pin] ng FPF2100 [sa pull down risistor] ... Ang VOUT [5 pin] ng FPF2100 ay makakuha ng konektado sa VCC ng microcontroller ... Ang lohika ay ganap simple kapag pinindot mo ung button, ang output ng OR gate ay mataas na ay konektado sa load lumipat pagkatapos kapangyarihan napupunta sa controller ... Sa iyong programa gawin ang mga GPIO mataas [Aling ay konektado sa iba pang input ng gate O], pagkatapos ay patuloy na kapangyarihan napupunta sa controller ... Pagkatapos ay huminto lumipat ay pipi, itigil ang lahat ng bagay [Tulad mo sinabi sa] ... Again simulan lumipat pipi, Hardware ay alagaan ng [lahat ng bagay Maliban paggawa GPIO mataas ]...: ngiti:
 
Salamat sa iyong detalyadong reply, kandhu, ngunit ako Dont gusto mong buksan ang mga microcontroller ganap off, bilang pagkatapos ng matakpan, gusto ko ito na maghintay para simulan ang button muli, Gusto ko lang tahts matapos ang stop switch ay pinindot ito lamang hihinto ang lahat ng bagay na tumatakbo , i mean magpadala 0 sa lahat ng mga "ports" na output, subalit matapos na gusto ko ito na maghintay para sa simula switchg muli .. ang aking code para sa ISR tulad ng ngayon ay naglalaman lamang ng pagpapadala ng 0 sa mga "ports" na output = /
 
Ikaw ay maaaring baguhin ang iyong code sa kalakaran ISR, at gumamit ng isang simpleng loop naghihintay na ang lumipat na pinindot muli. Kapag ito ay pinindot simulan everthing pagkatapos ay lalabas ang mga kalakaran.
 
| Akala ko ng na, ngunit ito kostumbre iwanan ang stack mismanaged .. ibig sabihin ako kapag microcontroller ang napupunta sa ISR, ito tindahan kung ano ang ginagawa nito sa stack at pagkatapos ay bumalik at pick up ..
 
Mas mabuti mong ilagay ang code dito ... Pagkatapos magbigay ng kahit sino na solusyon para sa iyong mga problema ...
 
Kapag ipinasok mo ang kalakaran, ito hihinto ang matakpan proseso. Ito lamang ang mga tindahan ng bumalik address. Kailangan mo ng isang bagay tulad na ito [ko] I-save ang register. [/I] [ko] huminto ang motor. [/I] [ko] lumipat lahat ng outputs sa zero. [/I] [ko] Umikot naghihintay para sa mga lumipat na maging pipi muli. [/I] [ko] simulan up ang motor [/I] [ko] ibalik ang mga outputs. [/I] [ko] malinaw anumang matakpan flags [/I] [ko] ibalik register [/I] [I ] exit isr [/I]
 
i-save ang rehistrong ISR, swap ay makakatulong sa iyo
 

Welcome to EDABoard.com

Sponsor

Back
Top