Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 12:04 pm Naslov sporočila: Kdo-kako |
|
|
Pozdravljeni
Zanima me, če sploh kdo programira v uVison-ovem orodju in
to z LPC9xx-ji.
Jaz pač mislim, da sem sam v tem svetu, ker mi noče nihče odgovarjati.
Zanima me predvsem kako začeti.
Kako napisati program, da mi bo Led utripnila.....
Katere ukaze lahko uporabim, skratka začetek.
Ker sem upazil, da se mojstrom ne ljubi ponovno razlagat začetke, samo
vi ste tudi tako začeli, kot jaz.
Se pač oproščam, če sem se rodil v napačnem času.
LP
Aleš
P.S.
Vem da sem že tečen. _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Tor Apr 10, 2007 12:43 pm Naslov sporočila: Re: Kdo-kako |
|
|
komuna32 je napisal/a: | Jaz pač mislim, da sem sam v tem svetu, ker mi noče nihče odgovarjati. |
Ker ne napises nobenega smiselnega (konkretnega) vprasanja, ne mores dobiti nobenega smiselnega (konkretnega) odgovora. Digitalna elektronika je - tako kot racunalnistvo - precej eksaktna zadeva in nekaj tako ohlapno opisanega, kot je "da mi bo Led utripnila", je mozno narediti na mnogo nacinov.
Citiram: | Zanima me predvsem kako začeti. |
Sedi pred racunalnik in pozeni uVision.
Citiram: | Kako napisati program, da mi bo Led utripnila..... |
S tipkovnico gre najlazje.
Citiram: | Katere ukaze lahko uporabim, skratka začetek. |
Tiste, katere pozna mikrokontroler (assembler) oz. prevajalnik (ce uporabljas C). Njihov seznam najdes v prilozeni literaturi (datasheet in User Manual za izbrani MCU ter C51 User Guide in C51 Library Functions).
Uporabi visjenivojskega jezika navkljub se ni mogoce izogniti natancnemu poznavanju arhitekture in izbranega MCUja; ti si ocitno zacel na povsem napacnem koncu (= nimas pojma o MCUju, katerega zelis uporabiti, niti nimas konkretne izvedbe aplikacije/HW, rad pa bi napisal program, ki bi poganjal tebi nerazumljivo neobstojeco napravo). Najprej preberi User Manual in datasheet, potem premisli kaj je potrebno narediti, da sploh lahko dosezes svoj cilj (torej kako prizigati in ugasati LEDico), potem si zamisli HW in ko bos vse to imel, je pisanje programa relativno preprosto, ne glede na izbiro orodja in jezika. |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 1:43 pm Naslov sporočila: |
|
|
Saj sem že programiral v Bascomu.
Ampak uVision orodje je povsem drugačno.
Rad bi sprogramiral, da bi na LCD-ju napisalo "Hello".
V Bascomu je zgledalo takole:
LCD "Hello"
LP
Aleš _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 2:07 pm Naslov sporočila: |
|
|
Samo jaz imam LPC936
in ta je družine LPC900 in ne ARM.
Aleš _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Tor Apr 10, 2007 2:38 pm Naslov sporočila: |
|
|
komuna32 je napisal/a: | Samo jaz imam LPC936
in ta je družine LPC900 in ne ARM.
Aleš |
Ups... sem spregledal tisto 9 v številki... nekaj je bilo apsanega tudi o teh LPC-jih. Vtipkaj v iskalnike LPC. Drugače pa lahko tega LPC-ja programiraš v Bascomu, če nisi vedel...
Lp
Jure |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Tor Apr 10, 2007 2:41 pm Naslov sporočila: |
|
|
V uVisionu pa moras uporabiti/napisati ustrezno proceduro za izpis na LCD (ta del ti Bascom prikrije), jo recimo poimenujes lcdprint() in potem lahko po mili volji delas
lcdprint("Hello");
Za Bascom je tako proceduro avtor ze napisal, v uVisionu bos pa ali moral uporabiti eno tistih, ki so jih napisali drugi (skupaj z vsemi omejitvami) ali pa napisati svojo. |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 3:48 pm Naslov sporočila: |
|
|
Zanima me še kje jo najdem.
Znam samo napisati osnove, če so pravilne
Led.c
#include <reg936>
void main ()
{
P2M1 = 0X01
P2M1 = 0X02
.
.
.
}
Kaj pa če želim, da se med prvim in drugim ukazom počaka 1sek.
Npr. v Bascomu je to ukaz wait1. _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Tor Apr 10, 2007 5:56 pm Naslov sporočila: |
|
|
Tukaj pa napises svojo proceduro, ki ji lahko konec koncev reces tudi wait() in jo klices z
wait(1);
Kako bo zeljeno procedura dosegla, je stvar tvoje izvedbe (doticni MCU ima vec virov casa, s katerimi je mogoce tako stvar narediti, nekaj timerjev in nekaksen RTC, ki tudi uporablja sistemski clock za referenco).
Jaz imam najraje timer v autoreload nacinu, ker ni nobene potrebe po kompenzaciji stevila ciklov, njegov ISR pa skrbi za stanje stevcev (en stevec steje osnovne enote, en milisekunde in en sekunde). Taka procedura pri ob klicu prebere stanje stevca in pocaka na ustrezno vrednost (ter kompenzira za morebitni overflow). |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 6:38 pm Naslov sporočila: |
|
|
Torej če sem prav razumel lahko napišem takole:
Led.c
#include <reg936>
void wait()
{
P2M1 = 0X01
wait(1); ------ali kaj drugega
P2M1 = 0X02
.
.
.
.
}
Aleš _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Tor Apr 10, 2007 6:45 pm Naslov sporočila: |
|
|
Razumel si narobe. Napisal si rekurzivno proceduro, ki ne pocne nic koristnega in v nekaj iteracijah zapolni cel stack ter prepreci normano delovanje mikrokontrolerja.
napises takole:
void wait(i: unsigned int);
{
... /* tukaj pride telo funkcije, ki pocaka i casovnih enot */
}
in jo uporabis tako, kot si ti napisal nizje, torej
wait(1); |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 7:10 pm Naslov sporočila: |
|
|
Nekako takole:
void wait(i: unsigned int);
{
P2 = i;
i = 0X01;
wait(1);
i = 0X02;
wait(1);
}
zanima _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
VolkD Profesionalec
Pridružen/-a: Sre Maj 2006 22:34 Prispevkov: 142 Kraj: Divača
|
Objavljeno: Tor Apr 10, 2007 8:18 pm Naslov sporočila: |
|
|
Naučiti se moraš jezika C. Ko boš to znal, ti bo vseeno katere mikrokontrolerje programiraš. Seveda, boš moral spoznati specifike dotičnega mikrokontrolerja, a to je že druga stvar.
V reviji SE je do sedaj izšlo že kar nekaj mojih nadaljevanj o jeziku C in delu z mikrokontrolerji. Vem, da ti ne bo všeč, a pisani so okrog AVR-jev. Glede na to, da so članki pisani prav za začetnike, torej take, ki začno od nile dalje, ti vseeno priporočam, da se jih lotiš in stvari, ki so tam tudi narediš.
Obljubim ti vso pomoč. Lahko dobiš tudi slike filmov, če boš izdeloval tiskana vezja.
Darko. _________________ Preden zaspiš zapri oči. Preden zapreš oči, ustavi avto. |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 8:20 pm Naslov sporočila: |
|
|
Pa še to če mora biti podpišje na koncu
void wait(i: unsigned int);
ko pa zbrišem podpišje pa napiše
error C141: syntax error near ':', expected ')'
kaj je tega vzrok.
Aleš _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
komuna32 Profesionalec
Pridružen/-a: Pet Sep 2006 8:49 Prispevkov: 54 Kraj: Pragersko
|
Objavljeno: Tor Apr 10, 2007 8:43 pm Naslov sporočila: |
|
|
Gospod Darko Volk
Saj se poskušam naučiti programskega jezika C, toda
katero literaturo mi priporočate.
Ali za AVR-je veljajo isti ukazi kot za LPC-je(v uVision).
Hvala za ponudbo filmov sem jih že videl, so zelo poučni, ampak jaz raje
jedkam kar v navadni posodi.
Imam malo znanja iz Bascoma (samo osnove).
Aleš _________________ Pogumen je tisti, ki
prizna da ga je strah. |
|
Nazaj na vrh |
|
|
|