Antena a AV vstup u televize

Ing. Petr Procházka pprochaz
Středa Březen 17 12:06:48 CET 2004


    Zdravim,
tak jsem po nekolika experimentech s onim kodem prisel
na to, kde byla chyba...
Nebylo potreba ani zakazovat preruseni, jen jsem si vytahl
kontrolni ledky a sledoval, kdy a hlavne jak se obsluhuje
preruseni.
Pokud se totiz vyvola preruseni od serioveho kanalu,
muze to mit 3 duvody. Ja si myslel ze to muzou byt jen
dva, a to ty, ktere jsou indikovany priznakovymi bity
RI (recive) a TI (transfer). Jenze pak jsem si vsiml
v knize "Mikrokontrolery ATMEL s jadrem 8051" obrazku 31
na str. 46 a koukam, on je tam jeste jeden priznakovy
bit SPIF - ten ale nevim co dela. Takze jsem upravil
cast kodu, resp. zamenil podminku jb TI, xmit za
jnb RI, xmit a ono se to rozbehlo.

Cili vetev, ktera obsluhuje preruseni pri prijmu znaku
se spusti pouze a jen tehdy, kdyz bude nastaven priznak RI.
Predtim se to spoustelo jen kdyz nebyl nastaven TI (a vyvolalo
se preruseni), takze se mohlo stat, ze to reagovalo i na onen SPIF.
 
Kazdopadne pomohla zamena jednoho radku a uz to chodi.

Diky vsem za rady, pripominky, namety, nasmerovani...



Cast zmeneneho kodu (cely je prilozen u meho posledniho
mailu, pripadne na pozadani zaslu).
Chodi to spolehlive na 19.2kbps, bufferovane (32B prijem,
32B vysilani, mezi vysilanim a prijmem je prodleva),
zadna ztrata dat.

uart:
	jnb	RI, xmit
   ; !!! puvodne bylo:  jb TI, xmit !!!
	mov	@R0, SBUF		; co prislo, dam do akumulatoru
	inc	R0			; posun ukazatele
	inc	R2			; inkrementace poctu doslych bytu
	clr	RI			
	cjne	R2,#32, end_uart	; pokud je buffer plny,
	setb	RTS			; zastavim tok dat
	setb	Buf_FULL		; nastavim priznak plneho bufferu
	cpl	P1.6
	jmp	end_uart

  xmit:
	cpl	P1.7

  end_uart:

	reti



-- 

----
                                         Martin Sveda
					 
		      email:        sejda@kn.vutbr.cz
		             martin.sveda@kn.vutbr.cz
		      www:    www.kn.vutbr.cz/~sveda3





Další informace o konferenci Hw-list