Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Mas de media hora! es mucho, igual ahi hable con andres cuenca para ver si me envia todo el contenido de este tema con adjuntos y todo para hacer una web y organizar las cosas por categorias, etc.
program DMX
'
' DMX 9 Channel PWM
'
' PIC 16F628A @20MHz
'
' Mardaso 2008
'
Const aantalkanalen as byte=9
Dim ch_count, offset, i, j, adres as Integer
Dim dat as byte[aantalkanalen]
Dim startcode, nutteloos, brk, led0, led1, led2, led3, led4, led5, led6, led7, led8 as byte
Dim counter as word
Sub procedure init_usart
SPBRG = 0x04
TXSTA.BRGH = 1
TXSTA.SYNC = 0
PIE1=0
PIE1.RCIE = 1
RCSTA.RX9 = 1
nutteloos=RCREG
nutteloos=RCREG
nutteloos=RCREG
RCSTA.CREN = 1
RCSTA.SPEN = 1
INTCON.PEIE=1
INTCON.GIE=1
End sub
sub procedure init_timer0
counter = 0 ' Initialize counter
INTCON=0
TMR0 = 160 ' load value TMR0
INTCON.GIE=1
INTCON.T0IE=1 ' Enable TMRO interrupt
INTCON.T0IF=0
end sub
Sub procedure interrupt
if INTCON.T0IF=1 then
inc(counter) ' Increment value of counter on every cycle
If counter <= led0 then
portb.4 = 1
else
portb.4 = 0
end if
If counter <= led1 then
portb.5 = 1
else
portb.5 = 0
end if
If counter <= led2 then
portb.6 = 1
else
portb.6 = 0
end if
If counter <= led3 then
portb.7 = 1
else
portb.7 = 0
end if
If counter <= led4 then
porta.0 = 1
else
porta.0 = 0
end if
If counter <= led5 then
porta.1 = 1
else
porta.1 = 0
end if
If counter <= led6 then
porta.2 = 1
else
porta.2 = 0
end if
If counter <= led7 then
porta.3 = 1
else
porta.3 = 0
end if
If counter <= led8 then
porta.4 = 1
else
porta.4 = 0
end if
if counter = 255 then ' if counter is 255, then reset counter
counter = 0
' To prevent clitches load the data at the end of the pwm cyclus
led0 = dat[0]
led1 = dat[1]
led2 = dat[2]
led3 = dat[3]
led4 = dat[4]
led5 = dat[5]
led6 = dat[6]
led7 = dat[7]
led8 = dat[8]
end if
TMR0 = 160 ' load value TMR0
INTCON.T0IE=1 ' Enable TMRO interrupt
INTCON.T0IF=0
portb.3=0
end if
'Uart interrupt routine
if PIR1.RCIF=1 then
portb.3=1
if (RCSTA.OERR) then
RCSTA.SPEN=0
RCSTA.SPEN=1
nutteloos=RCREG
nutteloos=RCREG
nutteloos=RCREG
RCSTA.CREN=0
RCSTA.CREN=1
ch_count=0
brk=0
else
if (RCSTA.FERR) then
nutteloos=RCREG
ch_count=0
offset=0
brk=0xFF
else
if (brk = 0xFF) then
if (ch_count=0) then
startcode=RCREG
else
if (adres<1) then
nutteloos = RCREG
for j=0 to aantalkanalen-1
dat[j]=0
next j
else
' ------------------------------ Hier adres controleren en evt. uitlezen
if (ch_count >= adres) and (ch_count < (adres + aantalkanalen)) and (startcode = 0) then
dat[offset] = RCREG
offset= offset + 1
else
nutteloos = RCREG
end if
' ------------------------------
end if
end if
ch_count = ch_count + 1
else
nutteloos = RCREG
ch_count = 0
end if
end if
end if
PIR1.RCIF=0
end if
end sub
main:
TRISA = 0xE0 ' PORTA is output
PORTA = 0x00 ' Initialize PORTA
TRISB = 0x02 ' PORTB is output
PORTB = 0x00 ' Initialize PORTB
CMCON = 0x07 ' comperators off
OPTION_REG = $80 ' Assign prescaler to TMR0
'
' Option register
' bit <2:0> | Timer0 prescaler Rate
'---------------------------------------
' 000 | 1:2
' 001 | 1:4
' 010 | 1:8
' 011 | 1:16
' 100 | 1:32
' 101 | 1:64
' 110 | 1:128
' 111 | 1:256
'---------------------------------------
PORTB.0 = 0 ' Set SN75176 to recieve data
PORTB.3 = 1
ch_count=0
brk=0
for j=0 to aantalkanalen-1
dat[j] = 0
next j
init_timer0
init_usart
counter = 0 ' Initialize counter
while TRUE
adres = 1
'
wend
end.
Un mes sin actividad en el tema, se perdio en la quinta pagina de la seccion, que paso muchachos...
Les dejo un pequeño avance de algunos cosas que estoy haciendo...
Ver el archivo adjunto 63359
Saludos...