MilosPs3: Ja vim, ze upozornovani na pravopis na forech se tresta hlubokym opovrzenim, ale tohle mi neda Mozna ze spis nez elektroniku by ses mel doucit pravopis. Kdyby tam byla 1 nebo 2 hrubky, tak jsem ticho, ale tohle je fakt husty Ja vim, ze jsme na foru elektroniky, ale alespon nejaka kultura by se mohla dodrzovat
kuto: Kde je diatrika?! Když už do někoho rýpeš.
Ja nerypu do diakritiky, ale do pravopisu. Rozdil ti popisovat nebudu
Spojeni “nakreslyl na tabuly” a pod. by se snad nemelo vyskytovat ani u zaka 4. tridy zakladni skoly, natoz u stredoskolaka. Za tohle by nase generace ve skole propadala a na tu stredni bychom se ani nedostali. Dnes je to bohuzel celkem bezny jev.
Jinak jsem si vedom, ze upozornovani na pravopis je povazovano pomalu za trestny cin
P.S. Velmi se omlouvam za offtopic, ale proste mi to nedalo.
no pokial to nemení vyznam ako napriklad byť a biť tak je to šum a fuk
i kedd je pravda že nekte to vyzera hrozne… avšak unika mi spojitosť s temou. Admin by to tu mal vymazať čo neje k teme.
zdravím
tak program už je nějak vytvořen ale není dobře… zde
chybu nedokážu najít … nerozumím tomu tak dobře, může mi zde někdo pomoct?
předem děkuji za odpověď.
cohovori simulaicva v MPlabe ? Hned prva vec nemas nastavene portz ako vystupne TRISA, TRISB… 0 znamenaju Out; 1 IN (u picu)
movlw b'11111111' ; TRISA setup
movwf trisa
movlw b'11110000' ; TRISB setup
movwf trisb
bohužel se to těžce popisuje když tomu nerozumím … každopádně ať mačkám zvýšení/snížení rychlosti tak to jede v cyklu
btfss tlac1
…
btfsc tlac1
goto Zrychlovani
…
INCF RYCHLOST,1
RETURN
btw: mám vývojové prostředí IDEA
A uz si tam natukal res skopiroval to co som ti napisal ? lebo v povodnom programe to maš zle.
A ta vasa idea nepise chyby…okrem toho ze premena rychlost nieje definovana pretože tam chyba pismenko, dalej prikazy goto odkazuju na nieco co konci returnom ??? navolanie podprogramu je Call meno podprogramu, a podprogram sa musi koncit returnom. Goto (chod na) udava len skok na nejaku adresu navest v programe.
IDEA nerozlisuje velke male pismena v navesti ?
Chyb je tam hodne ved to ani neprelozi…
Nevěš hlavu, na začátek je to dost dobrý. Jinak Atlan má pravdu, proveď to, co ti radil - v sekci Init si oprav nastavení registrů TRISx, ať ten MCU “ví”, co po něm vlastně chceme s těmi vstupy/výstupy. Já k tomu jen doplním, že nastavení TRISx by se hodilo dělat ještě před úvodním nastavením PORTx do výchozího stavu, tedy nejprve:
movlw b'11111111' ; TRISA setup - PORTA budou same vstupy
movwf trisa
movlw b'11110000' ; TRISB setup - PORTB 0 az 3 OUT, zbytek IN
movwf trisb
a až poté třeba ono
movlw b'00010000' ; PORTA setup
movwf porta
movlw b'00000000' ; PORTB setup
movwf portb
(i když v tomto případě mi není jasné, proč se snažíme nastavit vstup PORTA,4 do 1 - nemělo to být spíš něco na PORTB?)
Nstavení OPTION registru proveď radši jako první, ještě před nastavením funkce portů, tedy před těmu TRISx (i když vadit by to v tomto případě nemělo, protože výchozí nastavení po zapnutí je též FF, obecně správně ale je nastavit to jako první).
Zbytek vypadá, že by to mohlo nějak fungovat… vyzkoušej, a napiš co to dělalo/nedělalo, pak zkusíme vymyslet, co dál.
PS: Odkud je to “copypastlé”? Na totálního začátečníka je to “až moc dobrý” (ale nic proti, taky jsem tak začínal)
neviem ci imto nedal ucitel aby to len opravili inak chyba je este tu CEKEJ
CLRF CISLO
MOVLW RYCHLOST
MOVWF CISLOA
som zvedavy ci na to pridu
P.O. najpr sa nastavuu porty z dovodu ze nevieme aky stav na nich je az potom sa inicializuje TRIS. To je zdovodu aby s anestalo ze po nastaveni TRIS sa vystup daneho portu nastavi do log0 aj ked tam chceme mat 1 (na zaciatku je v setko v stave vysokej impedancie) co by nebolo dobre ak by sa spustil nejaky proces a program by este ani nezacal poriadne bezať.
1: doporucuju prejit na MPLAB
2: vyhazet z programu nepotrebny casti kodu/promeny
3: precist si neco o instrukci GOTO a CALL , nekde sem to tu vysvetloval
4: prepsal sem ten tvuj kod pro MPLAB,ale jeste ti ho neukazu
rekbych ze to jeste simulator nevidelo, a jestly jo tak ta IDEA je kvalitni
zkopírované to není odnikud … vytvořili jsme to ve třídě…
momentální verze vypadá takto … IDEA ukazuje že je program bez chyb…
jinak je to poprvé a nejspíš i naposled co s tím pracuju … už jen protože to máme ve škole jen půl roku a že bych se tím živil asi nehrozí … hlavně z toho nerupnout…
kdyz uz neberes na nase rady tak aspon
jeden problem
a druhej
CLRF CISLO
MOVLW 1
MOVWF CISLOA
takle to nebude fungovat, misto MOVLW 1 je treba zapsat instrukci ktera ti skopiruje obsah registru RYCHLOST do W
jeste se zeptam : ta IDEA ma i simulator ? skousel si si to osimulovat ?
takže místo MOVLW 1 napsat MOVLW RYCHLOST ?
simulátor jsem v idee nenašel.
Stále v tom máš chyby, program nebude fungovat. Chybně použitá kombinace instrukcí GOTO a RETURN(viz. MiloPS3 bod 3). Dále na co je použitá proměnná RYCHLOST? V programu je jen měněna její hodnota, ale dále se nikde nepoužívá. Také by mělo být ošetřeno maximum a minimum této proměnné.
Tj.:
Pokud bude RYCHLOST = 0 a provede se instrukce DECF RYCHLOST,1 bude výsledek RYCHLOST = 255.
Pokud bude RYCHLOST = 255 a provede se instrukce INCF RYCHLOST,1 bude výsledek RYCHLOST = 0.
Takže pokud by tato proměnná dále sloužila k časování dojde k chybě - po stisku tlačítka se rychlost nezvýší ale náhle sníží na 0(nebo z minima skočí na max otáčky).
nee, MOVLW → MOVE LITERAL TO W
potrebujes “Move F” , v DS je to napsany tak si ho otevri a najdi
pokud to nema simulator tak je jasny ze tam mas tolik chyb , ten simulator by ti to odhalil … , zahodit/rozslapat !
za to muze neznalost instrukci a hadavost , v prvnim kodu je to jasnejsi
krapet predbihas tet se toho lekne a utece
problém s goto a return jsem nenašel …
bez ošetřování rychlosti se obejdu
a tohle je co ?goto Zrychlovani
.
.
Zrychlovani ; zvyšování promene pro rychlost o 1
INCF RYCHLOST,1
RETURN
to samy “Zpomalovani”
pokud ti nevadi pretejkani registru “RYCHLOST” …
ten DS si uz otevrel ?
bohužel i přes pročtení DS nevím jak chybu opravit
Rozdíl mezi call a goto nevědí, protože programují ve vyšších jazycích a o stacku nikdy neslyšeli. Tudíž v tom ani nemůžou “shledat problém” . Mimochodem “goto” bych ve vyšších jazycích zakázal. Akorát to dovoluje psát dobytkárny. V asm je to někdy nezbytné (např. když instrukce skoku nemá potřebný dosah).
Mimochodem - když znají javu a php, znají i C (jen o tom nevědí), což by pár problémů vyřešilo. Zůstala by “jen” práce s hw.
kokosak: V datasheetu se podívej, na rozdíl mezi goto a call instrukcemi a porovnej je s “return”. Uvidíš, která z nich je k return ta opačná, tedy správná.
Taky mě to zezačátku moc nelákalo, ale kždyž jsem si doma bastlil nějakou elektroniku, brzo mi v tom začalo “něco chybět” . Trochu té inteligence tam zkrátka bez procesoru nedostaneš. Ovšem s assemblerem to taky nebylo dvakrát ono. To se ovšem s C rychle změnilo.