» »

programiranje procesorja

programiranje procesorja

««
8 / 11
»»

korenje_ver2 ::

v velikoserijskih izdelkih je vedno treba paziti na ceno, zato tam podjetja vzamejo vedno take pice, da ponucajo vse pine. Ti pici so torej najmanjsi kot so lahko. V glavnem jih morajo izkoristiti do konca. V takih primerih se vedno programira v assemblerju po moje, ker ze 1$ ceneje na izdelek je ogromno.

TESKAn ::

Ja, misli si:). C je preferiran pred assemblerjem, ker kot prvo traja manj časa, da razviješ zadevo (ko pišeš kratke programčiče, kjer meriš eno temperaturo in krmiliš LCD, že gre - ko pa delaš kaj zapletenejšega, ti pa .asm hitro rata nepregleden), kot drugo pa če ti razvijalec softwera pobegne, ima njegov naslednik manj problemov, da 'pogrunta' kodo.

Aja in zakaj misliš, da z C - jem ne moreš hardwera do konca izkoristit? Sej ti C ne nameče v kodo par NOPov sem pa tja:).
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

to glede nepreglednosti mas cis prov. jz sm veri zvecer cist znoru, ko nism najdu napake, pa sem pregledu vezje, primerju kodo s starim sejvom... sm pajstu del kode iz starih sejvov in je potem delalo normalno. sigurn sm nekje ponesreci pritisnu tipko in je malo zmedlo kodo ;(

pri Cju mi je vsec ker lahko delas neke knjiznice... npr mas knjiznico za pisanje na lcd, ki ji podas neke parametre. kle v asm je sicer isto, vendar moras narediti posebne ram lokacije al pa dat parameter v wreg, vendar je bolj komplicirano. Res pa da take knjiznice pozirajo nepotreben procesorski cas in prostor na flashu....

Zgodovina sprememb…

icek ::

v velikoserijskih izdelkih je vedno treba paziti na ceno, zato tam podjetja vzamejo vedno take pice, da ponucajo vse pine. Ti pici so torej najmanjsi kot so lahko. V glavnem jih morajo izkoristiti do konca. V takih primerih se vedno programira v assemblerju po moje, ker ze 1$ ceneje na izdelek je ogromno.


Ni ravno tako. Poznam kar nekaj firm (tudi nasa), katere se PICov izogibamo. Zakaj, ker so enostavno predragi. Obstaja mnogo drugih isto zmogljivih mikrokontrolerjev, kot so PICi, ki so obenem cenejsi.
Rider of Theli
www.air-tv.net

korenje_ver2 ::

icek, kako bi uspel z mojevrstnim nacinom programiranja v vasem podjetju? :8)

slawc ::

Pogorel bi totalno.
LP, Slawc

icek ::

Mislim, da bi hitro na C preklopil. :)
Rider of Theli
www.air-tv.net

korenje_ver2 ::

no ja... vazn je da je delovna sila motivirana in produktivna :D

v glavnem kar se tice moje kode, sem naredil tako tabelo za menije:

; priorities: EXECUTE -> FORWARD -> BACK -> NO ACTION
;	BACK  UP  DOWN  FORWARD  EXEC-OVER  EXECUTE  Rezerva
menu1
da	H'0000',H'0000',menu2,H'0000',_templcdwrite, H'0000',H'0000',H'0000'
da	"  Temp.:        "
menu2
da	H'0000',menu1,menu3,H'0000',_timelcdwrite, H'0000',H'0000',H'0000'
da	"    Cas:        "
menu3
da	H'0000',menu2,H'0000',	menu4,H'0000',H'0000',H'0000',H'0000'
da		"Konfig.:        "
;;;;;;;;;;;; menu3 LEVEL2 ;;;;;;;;;;;;;;
menu4
da	menu1,H'0000',menu5,H'0000',H'0000',	H'0000',H'0000',H'0000'
da	" Krneki:        "
menu5
da	menu1,menu4,H'0000',H'0000',H'0000',	H'0000',H'0000',H'0000'
da	"BACK            "

Zgodovina sprememb…

korenje_ver2 ::

Mene pa zanima kako MPLAB compiler naredi kodo v takem primeru...

MOVLW D'16'
MOVWF lcdcharcounter
MOVLW lcdcharcounter/2+1
MOVWF buffer1

A je isto kot:
MOVLW D'16'
MOVWF lcdcharcounter
MOVLW D'9'
MOVWF buffer1

ali pa naredi, da mora cip skalkulirat tisti ulomek oz +1?

TESKAn ::

Razmisli. MOVLW pomeni naloži dobesedno vrednost, ki jo ti podaš. Tako da v tem primeru ti tale ulomek izračuna compiler.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

Alo. jaz ne razumem kaj delam narobe.....

BCF	TTERMO		; output - pull-down
MOVLW	D'50'		; 500 us
CALL	_delay_ms
BSF	TTERMO		; input - resistor pull-up
MOVLW	D'9'		; 90 us
CALL	_delay_ms
BTFSC	TERMO
RETURN	; SENSOR NOT OK
CALL _sensorok



V tej kodi mi programcic ne zazna, da bi senzor vleku proti 0V.
Montiral sem 2x1.5khom upora zaporedno med vdd in data za senzor.
Je mogoce premocan pull-up za senzor al kaj?
(to je dogodek pri inicializaciji z ds18s20 temperaturnim senzorjem)

Zgodovina sprememb…

TESKAn ::

Napiši zraven, kaj je ta tvoj TTERMO, če hočeš, da ti kdo kaj pomaga...drugače pa naj bo pull - up, če imaš zunanjega, tak, da ga bo senzor lahko spravil na 0 - poglej si datasheet od senzorja, koliko toka lahko spravi skozi sebe, potem pa naračunaj upor in dodaj še kak kOhm, da si zihr.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

Tutankhamun ::

BTFSC, BSC, BCF rabijo 2 parametra, register in bit v tem registru.
AMD Phenom QUAD 9950 Black Edition, 8GB

korenje_ver2 ::

teska:
un T pred imenom ponavadi pomeni TRIS

tutank:
sem definiru bajt in bit v enem imenu

teska:
pise da ma active current 1mA pri 5V
Pa da naj bi rabil okrog 4.7kohm pullup.

5V/0.001A=5kohm. hmm.

Zgodovina sprememb…

Tutankhamun ::

A veš kaj je namen pullup
AMD Phenom QUAD 9950 Black Edition, 8GB

korenje_ver2 ::

da drzi visoko napetost na niti, tudi ko je naprava izklopljena?

TESKAn ::

In za komunikacijo med različnimi napravami. Da imaš lahko za output samo en tranzistor, ki ti potegne linijo na 0.
Drugače si zihr, da so tvoje zakasnitve prave?
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

Zakasnitve nej bi ble prave... ceprov pr lcdju sm mogu dat ene 30% visje stevilke...

samo kljub temu ne dela za senzor. ko sem dal pull-down sem dal takoj loop da najde prvo pull-up, potem pa loop da najde pull-down od senzorja.... in ni nic.

mogoce moram dat vecji upor...

TESKAn ::

Preveri zakasnitve, najbolje v simulatorju v MPLABu. Greš lepo step - through in vidiš, koliko časa dejansko porabiš.
Kot drugo, tvoja koda. Ti kot prvo nastaviš TRISx register na 0, kar ti da port v output. Nič pa ne določiš, kaj naj bo na portu, moreš najmanj za tem dat še "BCF TERMO", da boš imel 0 na vodilu. Kot ti delaš, nimaš pojma, kaj se znajde na izhodnem pinu, ko ga ti daš v output način. Dodaj še en BCF, kot sem ga napisal zgoraj.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

sej sem z voltmetrom preveru. pic lepo naredi pull-down, za termometer sem pa s picom preveru.

BCF TTERMO naredi pull-down,
BSF TTERMO pa naredi da se dvigne nazaj gor. (branje način)

probal sem tudi pospesit pull-up z BSF TERMO. pa je isto sranje.

Zgodovina sprememb…

TESKAn ::

Lej, pull - up ti dela upor. Pull - down ti dela ali pic ali senzor. Postopek komunikacije je pa sledeč:
- TRIS register daš na 0 (izhod)
- PORT register daš na želeno vrednost in jo pač spreminjaš v časovnih intervalih, kot je predvideno za komunikacijo
- TRIS register daš na 1 (input) in čakaš, da ti senzor odgovori

Torej ko govori PIC, daš TRIS na 0, ko govori senzor, daš TRIS na 1. Kaj bo PIC povedal, pa določaš z PORT registrom. Torej ti lepo popucaj še PORT register, potem ko enkrat nastaviš TRIS register na output.

Pa poglej si še enkrat, kaj je z tvojimi timingi. Ali imaš res 500 usec?Imaš simulator v MPLABU, uporabi ga. Nastaviš frekvenco, odpreš štoparco in gremo.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

tudi to ne dela...

BCF TTERMO
MOVLW D'250' ; 500 us
CALL _delay_ms
MOVLW D'250' ; 500 us
CALL _delay_ms
BSF TTERMO
drek2:
BTFSS TERMO ; preveri ce je pull-up (upor)
GOTO drek2
drek:
BTFSS TERMO ; preveri, ce je pull-down (ds18s20)
CALL _sensorok
GOTO drek


BTW, kje se dobi ta simulator? a je zravn MPLAB IDE al moram posebi downloadat?

sem dal 10kohm upor vmes, pa se vedno nic. se je mogoce senzor skuru al kva? :|

Zgodovina sprememb…

neoto ::

A ti sploh kaj bereš? Mimogrede, to je forum... Na forumu je več uporabnikov (torej nisi sam... ). Namen foruma je komunikacija med uporabniki...

Preberi kar ti pravi teskan!

Zgodovina sprememb…

korenje_ver2 ::

Sej sem prebral in naredil tako kot on pravi. Pa še vedno nič ne dela...

snow ::

Microchip PIC in 1-wire komunikacija: http://www.maxim-ic.com/appnotes.cfm/ap...

MPLAB: simulator nastaviš v meniju debugger.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

TESKAn ::

Darn no, ti morem napisat? Evo, ena vrstica:


BCF TTERMO ; output - pull-down //daš port na izhod, kar je OK

BCF TERMO ;TLE POPUCAŠ IZHOD, DA JE ZIHR NA 0

MOVLW D'50' ; 500 us

CALL _delay_ms

BSF TTERMO ; input - resistor pull-up //tle pa daš port na vhod,
;da ti lahko zunanje vezje spreminja vrednost, kar je tudi OK

MOVLW D'9' ; 90 us

CALL _delay_ms

BTFSC TERMO

RETURN ; SENSOR NOT OK

CALL _sensorok


Simulator je pa v MPLABU, izbereš Debugger -> Select tool -> Mplab SIM, potem pa še Debugger -> Settings in nastaviš frekvenco delovanja. Potem imaš pa ukaze step into, step over, step out, run, reset pa še kakšen, s katerimi kontroliraš pomikanje skozi program. Pod Debugger -> StopWatch imaš pa to štoparco, o kateri sem govoril.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

TESKAn ::

Ah, pa še to, sem spregledal - tile PICi imajo paging, se pravi naslavljaš nekatere registre tako, da najprej nastaviš, na kateri strani je tvoj register, šele potem lahko ta register spreminjaš. In če me spomin ne vara, so TRISx registri na strani 1, PORT registri pa na strani 2. Poglej si v datasheet, kako je s tem za tvoj PIC.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

18F pici nimajo tega.

zcetrt ::

Pri 16F seriji in 12F tudi so port registri v banki 0, tris pa v banki 1.

Kateri uC pa so načeloma cenejši in prikladnejši od PICov? Samo tako, za informacijo, ne da bi se šel kakšno vojno... Zame so še vedno vsaj enako zastonj kot najboljši konkurenti :)
4.

Zgodovina sprememb…

  • spremenil: zcetrt ()

TESKAn ::

ARMa od phillipsa dobiš za manj ko en evro (LPC 2103). Seveda v malce večjih količinah.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

slawc ::

LOL. Let the flame war begin!

:)

Kateri so cenejsi in prikladnejsi? Odvisno od uporabe. Ko gledam spletno prodajalno z el. komponentami si PICi najcenejsi. Seveda tisti najmanjsi. Ko pa se odlocis, da bi rad malo vec, je pa zadeva precej drugacna. Postavi si zahteve kaj bi od mikrota rad (performanse, poraba, periferija,...). Potem pa isci kaj ti najbolj ustreza.

Ce pa nimas pojma kaj to je, potem pa AVR. Enostavno nimas izbire, IMHO je najbolj uravnotezen mikro (poceni, zmogljiv, majhna poraba, enostavna arhitektura, odlicna dokumentacija, dobavljiv,...)

No, da ne bom pristranski, ti bom nastel se nekaj druzin (vrstni red je nakljucen)
- ST7
- MSP430
- PIC
- derivati 8051 (LPC900, Silabs, Analog)
- ARM7 (razlicni proizvajalci)
- ostalo (verjetno ni tako popularno)
LP, Slawc

Zgodovina sprememb…

  • spremenil: slawc ()

icek ::

Zelo poceni so philips. Tako ARM kot 8051. Dokaj hitro se da dobit sample zastojn od Texasa - MSP430. Zelo dobri 16-bitni mikrokontrolerji, ki obenem porabijo zelo malo energije in so zelo primerni za napajanje preko baterije.
Ma saj PICi niso tako slabi, tudi dokumentacijo imajo napisano zelo pregledno in razumljivo. S kom bo kdo delal je pac odlocitev vsakega posameznika. Z vsemi se da resevat enake probleme.
Rider of Theli
www.air-tv.net

snow ::

> Ko gledam spletno prodajalno z el. komponentami si PICi najcenejsi.

Pri nas?
Recimo v HTE imaš 28 pinski at mega8 za 4€ v primerjavi s pic 16f876a za 7+ €. In at tiny2313 za 2,75€ in pic 16f628a za 3,75€.

Sicer pa sem privrženec picev, zdaj pa malo pomagam bratu pri avrjih. Najbolj bistvena razlika mi je zaenkrat cena teh mcu pri nas.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

TESKAn ::

Hm, noben tu ne dela nič z freescaleovimi mikrokontrolerji (prej je spadal pod motorolo)?
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

BluPhenix ::

Prosim, da se z debato o različnih mikrokontrolerjih preselite v drugo temo, ker bo verjetno marsikaj koristnega. Nima smisla da se tukaj nabirajo debate, ki v bistvu s to temo nimajo veze, lahko pa komu pomenijo lepo branje.

Hvala.
Podpisa ni več, ker so me poskušali asimilirati.

korenje_ver2 ::

Mene zanima kako vi naredite točen čas?

Jaz naredim tako, pa ne vem če je vredu...

720000000 ciklov je ena minuta.
moram dati prescaler na 2. To pomeni (256*256)*2=131072 ciklov
Če delim ciklov na minuto z cikli timerja dobim 5493,164063.
Torej 5493x moram preskočit, kar pomeni 5493*131072=719978496
Ostane mi še 21504 ciklov na voljo. 4*(5493) jih ponucam z cikli v interruptu in preskoki. To je 21972.
Presežek imam 468 ciklov, kar pomeni, da bo ura zaostajala za 468 ciklov na minuto.
To je 22 sekund na leto.
Problem je pa predvsem to, da mi tak način pokuri ful velik procesorskega časa. Interrupt se dogaja vskaih 0.0109 sekunde, v tem času pa naredim ~30 ciklov za to, da dosežem točno eno minuto in dodam spremenljivko za minuto. To pomeni 30*5493=164790ciklov oz 0.0137 sekunde zapravljenega časa na minuto, samo za generiranje ure, kar mi je veliko.

Taki so pa časi, pri različnih prescalerjih.
prescaler	result time 16 bit	cycles equivalent	skips 60s
256	1,39810133333	16777216		42,91534424
128	0,69905066667	8388608		85,83068848
64	0,34952533333	4194304		171,661377
32	0,17476266667	2097152		343,3227539
16	0,08738133333	1048576		686,6455078
8	0,04369066667	524288		1373,291016
4	0,02184533333	262144		2746,582031
2	0,01092266667	131072		5493,164063



btw, to je samo za generiranje za eno minuto. Če bi generiral za eno sekundo, je odstopek zelo prevelik. cca 0.3 sekunde na minuto. Pri generiranju za 1 uro se ta odstopek bistveno zmanjša od odstopka za eno minuto. Tko da bi v bistvu lahko za eno uro generiral posebej čas in bi tako dosegel veliko manjšo napako na eno leto.


Kako vi naredite točen čas?

Zgodovina sprememb…

icek ::

PCF8583 :)
Rider of Theli
www.air-tv.net

TESKAn ::

Tebi se zdi ena desetinka sekunde na minuto velika potrata za štet uro? Kaj pa delaš tako hudo časovno kritičnega, da bi hotel porabit manj? Sprijazni se, da za izvajat opravila potrebuješ čas.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

sam z 4 mhz clockom je ful lazje narest, ker timer0 ze zaokrozi na celo stevilo in ni potrebna ena tona ostalih funkcij...

pa še to... je kdo že probal povezat kamero iz mobitela na PIC?


pa....
zdej na veliko optimiziram mojo kodo...
bom naredil detekcijo pritiska na gumb brez interruptov, pa se mi porajajo misli....
Tile delayi, ki jih moram izvesti po posiljanju na lcd so dokaj dolgi... zato sem segmentiral kodo tako, da mece stvari v nek buffer. Ta buffer se pa prazni na glavnem loopu in poganja kodo v bufferju. gre torej za neko indirektno izvajanje kode.
To je predvsem dobro, ce zelim opraviti se kake druge stvari, medtem ko se ostalo nalaga v "buffer".

Zgodovina sprememb…

zcetrt ::

Glej, multitaskinga tu ni. Vsaj ne takšnega, kot si ga ti želiš. Če pa meniš, da boš z nekimi softwerskimi bufferji pri mikrokontrolerju privarčeval s časom, mi pa javi, ko ti uspe.

Kar se tiče CCD pa poglej malo, koliko kaj pinov ima zadeva in ali ti uspe dobiti kakšno dokumentacijo. Načeloma bi lahko šlo. Načeloma bi lahko šlo vse. Skoraj vse.
4.

snow ::

> To je 22 sekund na leto.

Blablabla. 50 ppm je ponavadi natančnost kristala. 50 ppm v letu je 1576,8 sekunde. Bo treba malo kondenzatorje štelat, če boš hotel res točen čas.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

korenje_ver2 ::

zcert, namen ni bil na pridobitvi casa, ampak v tem, da se pridobi dostopnost do procesorskega casa, medtem ko tisto v bufferju ostane v ozadju in se izvrsi kasneje.
recimo da chekiram za gumbe, ce so pritisnjeni na vsakih 0.05 sekunde. In ce imam neko initializacijo, ki ima toliko delayev da zavzame ene pol sekunde, potem pritiski na gumb ne bodo imeli efekta. Ce pa razdelim tisto initializacijo na kose in jih dam v buffer, ter da po vsakem drugem kosu preverim za gumb, potem je to ze bolje ne?


snow, imam oscillator, ne kristal.

Zgodovina sprememb…

TESKAn ::

Kaj bi pa delal z pol sekundnim delayem?
Drugače lahko take stvari narediš v stilu state machine. Ena rutina, ki rabi dolgo časa, da se izvede en določen del, jo kličeš periodično. Ko rabiš delay, daš v stanje, ki bo čakalo, da se ti sistemska ura spremeni za pol sekunde. Rabiš par vrstic Cja, da to preveriš vsakokrat.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

zcetrt ::

Zakaj pa ne bi spisal delayev tako, da čekirajo tipke vmes?

Ma, ti se nekoliko preučeno izražaš včasih, se mi zdi. Uporabljaj timerje.
4.

korenje_ver2 ::

hja sej... najboljs bi blo v interruptu chekirat za tipko.
Me pa zanima, ce se timerx interrupti kej conflictajo med sabo, ce sta dva vklopljena. Npr da se na vsakih XYZ sekund vklopi eden, drugi pa na vsakih XYZ/2. Kako se potem to izvrsi? Takj ko zbrisem *IE, gre v naslednji interrupt?

korenje_ver2 ::

A kdo ve zakaj mi delay loopi ne delajo?

delay_0	set .29 ; delay for _delay_ms
delay_1	set .207 ; delay for _delay_s
delay_2	set .192 ; delay for _delay_s

CBLOCK
#delay_0
#delay_1
#delay_2
ENDC

#buffer	res 6

MOVLW	delay_0
MOVWF	#delay_0
MOVLW	delay_1
MOVWF	#delay_1
MOVLW	delay_2
MOVWF	#delay_2

_delay_s
	MOVFF #delay_2, #buffer+2
	__delay_sec_2
		MOVFF #delay_1, #buffer+1
		__delay_sec_1
			DECFSZ #buffer+1
		BRA __delay_sec_1
		DECFSZ #buffer+2
	BRA __delay_sec_2
	DECFSZ WREG
      BRA _delay_s
RETURN FAST



Zgodovina sprememb…

korenje_ver2 ::

ma jz bom znoru.... enkrat mi dela, drugic mi ne dela... in to pravilno napisana koda. mislm ej wtf..

sem dal brownout na 2V in pritiskanje na gumb vec ne dela zmede na lcdju....

Zgodovina sprememb…

TESKAn ::

Ne uporabljaj w registra za spremenljivko. In če tale koda ni del interrupta, potem zbriši return fast in daj retie.

Drugače en nasvet, je teško pomagat, če ne poveš ama nič, kako naj bi rutina delala.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

sej v interruptu imam tut retfie fast, da mi shrani W register in ostalo. v bistvu mam skor v vsakem callu fast.

sem dal v glavni loop:
.led1 MACRO
BSF LED1
MOVLW .6
CALL _delay_s, FAST
BCF LED1
MOVLW .6
CALL _delay_s, FAST
ENDM

pa se mi dogaja, da mi zacne ledica ful hitrej utripat, ce pozenem tole:
_over_time
.lcd_bufferwrite _lcd_ddram_a, 0000h
.lcd_bufferwrite _lcd_string8, str_time_
RETURN FAST

.lcd_bufferwrite MACRO addr_, string_
; executor + string(buffer+1 & buffer+2)
LFSR FSR0, #displaybuffer
MOVF #dispbuffc, W
ADDWF FSR0
MOVLW HIGH addr_
MOVWF POSTINC0
MOVLW LOW addr_
MOVWF POSTINC0
MOVLW HIGH string_
MOVWF POSTINC0
MOVLW LOW string_
MOVWF POSTINC0
MOVLW .4
ADDWF #dispbuffc, F
MOVLW displaybuffsize+.1
CPFSLT #dispbuffc
CALL _error_ramoverflow, FAST
ENDM

Ne razumem, kako ima lahko tole vpliv na #delay_1 in #delay_2, ki ga uporablja _delay_s
#delay_1 in #delay_2 se nalozita na zacetku programa in se nikjer vec ne spreminjata. Sam vseeno ima nek vpliv ta _over_time

aja pa led diodice normalno utripajo, ce dodam na zacetek _delay_s tole:
MOVWF #buffer+3
MOVLW delay_1
MOVWF #delay_1
MOVLW delay_2
MOVWF #delay_2
MOVF #buffer+3, W

V glavnem zmeden sem.
sem malo bolj lokaliziral problem... led zacne hitreje utripat, ko dodam .lcd_bufferwrite _lcd_string8, str_time_
Torej tisti str_time_. ce je 000h, led normalno dela.

Zgodovina sprememb…

korenje_ver2 ::

ma fak offfff...

ime-rama res vrednost so se konfliktal z večimi RES-i in cblockom, tko da so določil več imen za isti naslov rama.
v glavnem za znoret. jz pa cel dan iscem napako drugje.
««
8 / 11
»»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Microchip MPLAB icd 2 (pic16f876a)

Oddelek: Programiranje
111095 (972) Highlag
»

PIC18F4550 in ds18s20

Oddelek: Elektrotehnika in elektronika
191857 (1536) snow
»

Zelo pocasno utripanje LED diode (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
508313 (7518) a13misko
»

PIC 16f84A - utripanje

Oddelek: Elektrotehnika in elektronika
222056 (1856) ql000
»

mikrokontrolerji, programatorji, c/asm ?

Oddelek: Elektrotehnika in elektronika
292832 (2451) snow

Več podobnih tem