 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
digital Član

Pridružen-a: Ned 08 Jun 2008 23:11 Prispevkov: 253 Aktiv.: 1.22 Kraj: Slovenska Bistrica
|
Objavljeno: Pet Jun 27, 2008 6:58 pm Naslov sporočila: avr in shift registri |
|
|
Na attiny-ja 2313 bom priklopil shift registre 74hc595 vezane zaporednom in bi jih želel "napolniti" preko SPI-ja. Ker sem začetnik vas prosim za nekaj pomoči. Programiral bom v bascomu. Za začetek bi potreboval vsaj osnovne napotke ali vzorec kode nadaljeval bom sam. Sem obdelal datasheet - USI pa mi ni uspelo spraviti skupaj delujočega programa.
Hvala za pomoč. |
|
Nazaj na vrh |
|
 |
Borris Član

Pridružen-a: Sre 18 Jun 2008 23:39 Prispevkov: 15 Aktiv.: 0.07 Kraj: Kutina
|
Objavljeno: Pet Jun 27, 2008 10:16 pm Naslov sporočila: |
|
|
Ja ih punim s ovim programčičom (primjer:sportski semafor)
For Ii = 0 To 5
If Ii = 0 Then : Broj = Gosti_rezultat : End If
If Ii = 1 Then : Broj = Domaci_rezultat : End If
If Ii = 2 Then : Broj = Jed : End If
If Ii = 3 Then : Broj = Des : End If
If Ii = 4 Then : Broj = Sto : End If
If Ii = 5 Then : Broj = Tis : End If
Restore Tabela
For I = 0 To 14
Read Segment
Waitms 1
If I = Broj Then
Izlaz = Segment
Exit For
End If
Next
For I = 0 To 7
Reset Clock
Waitms 1
Broj = Izlaz And &H80
If Broj = 0 Then
Reset Podatak
Waitms 1
Else
Set Podatak
Waitms 1
End If
Set Clock
Waitms 1
Rotate Izlaz , Left
Waitms 1
Reset Clock
Waitms 1
Next I
Next Ii
Set Store
Waitms 1
Reset Store
Waitms 1
End Sub
Tabela:
' Data 0, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10=blank, 11=:, 12=*, 13=C, 14=-,
' a=1, b=2, c=4, d=8, e=16, f=32, g=64
Data 63 , 3 , 109 , 103 , 83 , 118 , 126 , 35 , 127 , 119 , 0 , 64 , 113 , 60 , 128 |
|
Nazaj na vrh |
|
 |
digital Član

Pridružen-a: Ned 08 Jun 2008 23:11 Prispevkov: 253 Aktiv.: 1.22 Kraj: Slovenska Bistrica
|
Objavljeno: Sre Jul 02, 2008 9:21 pm Naslov sporočila: |
|
|
Boris, hvala ti. Primer mi je bil v veliko pomoč. Ukaze v tvojem programu sem naštudiral še v helpu bascom in naredil svoj osnutek. Delovanje sem preveril na enem registru. Dodal pa sem še PWM - ledice se tukaj počasi prižigajo. Program bom še popravil (kodo, ki se ponavlja bom spravil v podprogram). Za test sem naredil kar leteče luči v končni verziji pa bodo ledice gorele v različnih vzorcih glede na čas ali vhodni signal. Še enkrat hvala.
Koda: |
Config Spi = Soft , Din = Pinb.0 , Dout = Portb.1 , Ss = Portb.4 , Clock = Portb.5
'PORTB.6 = RCK - vpis latch v izhodni bufer shift registra
'PORTB.7 = G - omogoči ali "ugasne" izhode shift registra
Config Portb = Output
Config Debounce = 30
Dim Izhod As Byte 'izhodni podatek
Dim I As Integer 'števec
Dim J As Integer 'števec
Dim B As Integer 'števec
Dim C As Integer 'števec
Dim D As Integer 'števec
Do
Spiinit 'Inicializacija SPI-ja
Goto Pwm
Letece:
Reset Portb.7 ' omogoči izhode shift registra
Restore Tabela1
For J = 1 To 24
Debounce Pind.0 , 1 , Pwm
Read Izhod
Spiout Izhod , 1
Set Portb.6
Reset Portb.6
Waitms 30
Next J
Waitms 100
Restore Tabela2
For J = 1 To 24
Debounce Pind.0 , 1 , Pwm
Read Izhod
Spiout Izhod , 1
Set Portb.6
Reset Portb.6
Waitms 30
Next J
Waitms 100
Restore Tabela3
For J = 1 To 24
Debounce Pind.0 , 1 , Pwm1
Read Izhod
Spiout Izhod , 1
Set Portb.6
Reset Portb.6
Waitms 30
Next J
Waitms 100
Goto Letece
Pwm: 'prižge vse ledice
Restore Tabela4
Read Izhod
Spiout Izhod , 1
Set Portb.6
Reset Portb.6
Reset Portb.7
Waitms 100
Pwm1: 'leduce ugasnejo in se počasi prižgejo
For C = 1 To 50 Step 2
D = 51 - C
For B = 1 To 100
Debounce Pind.0 , 1 , Naprej
Debounce Pind.1 , 1 , Letece
Reset Portb.7
For I = 1 To C
Next
Set Portb.7
For I = 1 To D
Next
Next B
Next C
Goto Pwm1
Naprej:
Reset Portb.7
Waitms 500
Set Portb.7
Waitms 500
Goto Pwm
Loop
Tabela1:
Data &B10000000 , &B11000000 , &B11100000 , &B01110000 , &B00111000 , &B00011100 , &B00001110 , &B00000111
Data &B00000011 , &B00000001 , &B00000000 , &B00000001 , &B00000011 , &B00000111 , &B00001110 , &B00011100
Data &B00111000 , &B01110000 , &B11100000 , &B11000000 , &B10000000 , &B00000000 , &B00000000 , &B00000000
Tabela2:
Data &B10000000 , &B11000000 , &B00110000 , &B00011000 , &B00001100 , &B00000110 , &B00000011 , &B00000001
Data &B00000000 , &B00000001 , &B00000011 , &B00000110 , &B00001100 , &B00011000 , &B00110000 , &B01100000
Data &B11000000 , &B10000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 'konec 48 bytov
Tabela3:
Data &B10000000 , &B01000000 , &B00100000 , &B00010000 , &B00001000 , &B00000100 , &B00000010 , &B00000001
Data &B00000000 , &B00000001 , &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00100000 , &B01000000
Data &B10000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 'konec 54 bytov
Tabela4:
Data &B11111111 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000
|
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|