Stránka 1 z 1

inkrementální snímač+cpu

Napsal: 04 lis 2007, 20:00
od Aqarel
zdravím, udělal jsme si tento modul pro dekódování signálu z ikrementálného snímače(použil jsem fototranzistor a diodu ze staré kuličkové myši). Naprogramoval jsem si atmel 89C2051 pro čítání pulsů nahoru/dolů (podle výstupu směr) ze snímače; počet načtených pulsů zobrazuji na led připojených přes 74ls245 na port P1; signál směr na P3.0, pulsy - P3.4, chyba se +- periodicky opakuje jakmile načtu cca 254 pulsů - signál směr začne pulsovat se stejnou frekvencí jako pulsy, zkoušel jsem signál směr připojit přes tranzistor, hradlo - nepomohlo; když signál směr odpojím od cpu pak vše funguje jak má - signál směr nekmitá. V programu by být chyba neměla, z portu P3 jen čtu

Kód: Vybrat vše

      org 0
      jmp main
      
      org 0bh            ;obsluha přerušení časovače
      mov tl0,#0ffh
      jb p3.0,plus      ;rozhodnutí čítání nahoru/dolů podle směru
      cjne r4,#0,sem
      dec r4
      dec r5
      reti
   sem:   dec r4
      reti
   plus:   cjne r4,#0ffh,sem2
      inc r4
      inc r5
      reti
   sem2:   inc r4
      reti
      
   
   main:   mov tmod,#0110b
      mov tl0,#0ffh
      setb ea
      setb et0
      setb tr0
      clr tf0
      mov r4,#0
      mov r5,#0
   sem3:   jnb p3.1,sem4
      mov a,r5
      cpl a
      mov p1,a
      jmp sem3
   sem4:   mov a,r4
      cpl a
      mov p1,a
      jmp sem3

      end

Napsal: 07 lis 2007, 17:59
od Aqarel
zatím jsem přišel na to, že signalizační Led směru tam robí také občas neplechu, tak jsem ji odstranil. Ale původní problém setrvává signál směr a pulsy kmitají inverzně se stejnou frekvencí při připojení signálu směru k cpu, nejčastěji když registr R4 má hodnotu 254 a jen při čítání pulsů nahoru ; zkoušel jsem signál směr připojit na jiný pin cpu, ale bezvýsledně, můžemi s tím někdo poradit?

Napsal: 08 lis 2007, 16:21
od Aqarel
problém jsem už vyřešil, signály směr a pulsy spínám přes tranzistory a zdá se že vše funguje jak má