freescale

Programovacie jazyky, rady, poradňa...
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

dik tie porty radsej rucne hento sa mi zda fakt take zdlhave... a teraz som daco napisal a mam tam niake nejasnosti neviem ako zadavat hodnoty do premennej kedze som cital ze pri c++ mam davat int cislo; cislo 10; a pri c ze int cislo; cislo=0; mno proste takto som nieco spravil a co sa tyka ttoho zoradenia definici a to tak to ma tiez mozes zbuzerovat.. :D

Kód: Vybrať všetko

#define STLAC_POT PTB_PTB0 //potvrdenie
#define STLAC_MIN PTB_PTB1 //minuty
#define STLAC_SEK PTB_PTB2 //sekundy

DDRA = 0xFF;
DDRB = 0x00;

int min; 
min = 0;
int sek;
sek = 0;
int potvrdenie;

potvrdenie = 0;
while(potvrdenie == 1){
	if(min == 100){
		min = 0;
		}
	if(STLAC_MIN == 1) min++;
	if(STLAC_POT == 1) potvrdenie = 1;
}

potvrdenie = 0;
while(potvrdenie == 1){
	if(sek == 60) {
		min++;
		sek = 0;
		}
	if(STLAC_SEK == 1) sek++;
	if(STLAC_POT == 1) potvrdenie = 1;
}
to som sa akoze pokusal neico spravit co mi do premennych ulozi to co si naklikam ( nastavenie dlzky casovaca) akzoe neviem toto som len tak skusal..... takzeeee.. vacsinou co som pisal tak to mam zo samotnych tutorov z C++ a C...

//autoeditácia príspevku ( 27 Sep 2008, 14:20 )
ale mam asi taky pocit ze tym ze ked to zmacknem a ten cyklus ide asi trochu richo tak ono to asi bude pripocitavat dovtedy ako drzim tlacitko ?:D to by mi do napr sek zadalo asi take dlhe cisielka ne :D
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Samozrejme áno. Mal by si tam testovať, či sa stav zmenil z vypnutého na zapnuté a navyše by si tam mal dať nejaké časové obmedzenie (keďže pri zapínaní a vypínaní môže nastať nejaký zákmit, takže by to mohlo vyzerať ako viac stlačení/pustení tlačidla).
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

presne to som myslel :P

//autoeditácia príspevku ( 27 Sep 2008, 18:37 )
no fajn to uz viem ako osetrit tam bachnem niaky cyklus nech caka par ms ocuj vies co si mi poslal ete nedavno v tom aradiu ten navod na ten programator tam bol kus skriptu a tam mas funkciu ze CakajNaMs(250) pocka 250ms.. prosim ta ako mozem vytvorit takuto funkciu ?
uelektronik
Star
Star
Používateľov profilový obrázok
Príspevky: 524
Registrovaný: 05 aug 2006, 14:08

Príspevok od používateľa uelektronik »

Kód: Vybrať všetko

potvrdenie = 0; 
while(potvrdenie == 1){ 
// nieco
}
Toto ti fungovat nebude, ved ten while sa nikdy nevykona.

To tlacitko mozes osetrit tak ze ked sa stlaci tak vlezies do funkcie kde sa bude cakat cas T, potom budes stale testovat ci uz stlacene nie je, ak uz zistis ze nie je stlacene tak znova budes cakat cas T. Tymto sposobom odstranis zakmity ktore vznikaju pri stlaceni a pusteni tlacitka. Cas T je pri kazdom druhu tlacitka iny treba ho zistit experimentalne skusanim roznych hodnot.

Tu cakaciu hodnotu si mozes spravit pomocou processor experta tym ze vytiahnes bean TimerInt, nastavis cas a ked spustis tak po nastavenom case sa vykona prerusenie ktore ta presmeruje do prerusovacej funkcie, tam napises obsluhu. Inak ten skript ma autor clanku na svoj webove stranke, tu mas priami link: http://jednocipy.kvalitne.cz/files/hc08.zip Napisane to ma vsak v assembleri tak neviem ci ti to pomoze. Dolezite je uvedomit si ze cas ktory nastavis v timeri zalezi od krystalu ktory bude zapojeny k MCU, takze v processor experte si nastav taky xtal aky budes mat v realnom zapojeni, a ak pouzijes ten skript tak by si mal mat taky xtal ako autor (neviem aky pouzil).
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

hmm a preco sa to nevykona ???
uelektronik
Star
Star
Používateľov profilový obrázok
Príspevky: 524
Registrovaný: 05 aug 2006, 14:08

Príspevok od používateľa uelektronik »

pretoze premenna potvrdenie je rovna nule a podmienka while je doslova:

pokial (potvrdenie je rovne jedna) {
tak nieco urob;
}
inak dlasie prikazy

teda podmienka vo while musi byt pravdiva aby sa vykonalo telo cyklu
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

lool boze ja som debil :D to som fakt napisal jaku kravinu :D
michal1232
Novice
Novice
Príspevky: 1
Registrovaný: 14 mar 2010, 15:10

Re: freescale

Príspevok od používateľa michal1232 »

Dobry... ja by som sa ties chcel nieco opitat k tymto mcu a to hlavne k casti kde si hovoril ze, sa daju programovat cez PC len tie s jadrom HC08 a to cez serial port ale ja som nasiel na nete tento mcu MC9S08AC60CPUE a ten ma ties SPI tak by sa dal potom tiez programovat cez ten serial port :?: Dakujem za odpoved :)
Napísať odpoveď