[ cheko @ 10.05.2015. 17:47 ] @
Evo i ja se resio da postavim neko pitanje u nadi da ce mi neko pomoci oko mog problema : Ovaj kod radi i sve je ok.Ali ja hocu da sa sadasnjih 16 bita prosirim red na 32 bita Citao sam na netu da se to radi sa nizom vise bajtova u promenijvoj kao na primer -red var byte [4] ali ja to nemogu da ubacim u ovaj moj kod,ako neko moze da pomogne zahvaljujem. mikrokontroler je pic 16f628a i za sada 2 - 74hc595 shift registra a ja bi da prosirim na 4 ili vise shift registara Code: Include "modedefs.bas" 'Include serial modes 'Define OSC 10 '8MHz crystal CMCON = 7 'Disable comparator,start up in digital mode,PortA '@ DEVICE INTRC_OSC @ DEVICE ER_OSC_NOCLKOUT @ DEVICE WDT_OFF ' Watchdog Timer @ DEVICE PWRT_ON ' Power-On Timer @ DEVICE MCLR_OFF ' Master Clear Options (Internal) @ DEVICE BOD_ON ' Brown-Out Detect @ DEVICE LVP_OFF ' Low-Voltage Programming @ DEVICE CPD_OFF ' Data Memory Code Protect @ DEVICE PROTECT_OFF ' Program Code Protectio Symbol clock = PORTA.0 Symbol dat = PORTA.1 SYMBOL latch = PORTA.2 Red var word a var byte aux var word karakter var byte adr var byte x var byte karakter = 0 x = 0 a = 0 adr=0 red = 0 aux = 0 eeprom [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,65,65,65,34,0,127,8,8,8,127,0,127,73,73,65,0,127,20,34,65,0,62,65,65,65,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254] portb = %11111111 trisb = %00000000 pocetak: adr=0 dalje: '************************************************************* for x = 0 to 126 read adr,karakter adr=adr+1 if karakter = 254 then pocetak red.15 = karakter.0 gosub unos gosub prikazi gosub pomeri goto dalje next x '*************************************************************** unos: aux = red For a = 1 To 16 If aux.15 = 0 Then LOW dat LOW clock HIGH clock Else HIGH dat LOW clock HIGH clock Endif aux = aux<<1 'pomeranje u levo za 1 Next a return '********************************************************************** prikazi: '********************************************************************** portb = %11111111 high LATCH low latch low portb.7 gosub pauza return '********************************************************************** pomeri: '********************************************************************** red = red >> 1 return '*********************************************************************** pauza: pause 500 return '*********************************************************************** END |