Port bővítés Shift regiszterrel

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
winnerbt
Chipfüstölő
Hozzászólások: 898
Csatlakozott: 2007. március 25. vasárnap, 6:00
Tartózkodási hely: Kecskemét

Hozzászólás Szerző: winnerbt »

Pedig a PS2 billentyű is adja az órajelet. És ha bejön egy másik INT közben? Akkor gebasz van. Vagy ha tényleg 1 tüsi beszalad, akkor holta napjáig vár a PS2 billentyűzet többi bitjére? Senki nem illesztett még billentyűzetet (az egeret már meg sem merem kérdezni) AVR-hez?
Na, ilyenkor hiányzik pl. az INT prioritás, ami nincs ugye.
(azért mondjuk az egér protokol kiagyalója is jól érezheti magát a szüleivel, valami default módban csak elindulhatna, akinek nem tetszik, majd átírja, de hogy alapban semmi...)
Máshol is azt látom, külön AVR-t tesznek be csak PS2 kezelésére. Szóval nem csak én anyázok.
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00
Tartózkodási hely: Balatonboglár

Hozzászólás Szerző: DOGMAN »

Bence írta:Szia!

Majdnem jó, viszont annyit kell változtatni, hogy ahogy írtam a 74HC595-ös 10-es lábát (SCL) nem kell az AVR-el összekötni, ezt elég ha +5V-ra kötöd. (Most már ebben biztos vagyok, át is írom az első hozzászólásom).

Viszont az IC3 14-es lábát (SER) rá kell kötnöd az AVR-re, hiszen innen kapja az adatot! Ez lesz a Data_out. Például, ezt bekötöd a PC3-ra (AVR 26-os láb), akkor ezt kell beállítanod: Data_out Alias Portc.3
Na megépült a kapcsolás, és egy kis pontosítás: a 10-es és a 13-as lábat magasra kell húzni, vagy ha ki-be akarom kapcsolni a kijelzőket anélkül hogy törölném a tartalmukat, akkora 13-as fel/le húzásával tudom ezt megtenni, én a példarajzon felhúztam 10k-val 5V-re, így mindig világítanak.
Esetleg meg lehetne próbálni ide (13-asra) PWM lábat kötni és ezzel lehetne a fényerőt szabályozni.
Kép

Kód: Egész kijelölése

$regfile = "m32def.dat" 
$crystal = 16000000 
$baud = 38400 


Clock_out Alias Portb.2                                     'Összes 74HC595 11-es lába 
Latch_out Alias Portb.1                                     'Összes 74HC595 12-es lába 
Data_out Alias Portb.0                                      'Első 74HC595 14-es lába 

'A második IC 14-es lábát az első IC 9-es lábára kell kötni. 
'A harmadik IC 14-es lábát a második IC 9-es lábára kell kötni, stb... 
'A 13-as lábbal lehet ki-be kapcsolni a regisztereket anélkül, hogy a tartalmuk törlődne.

Config Clock_out = Output 
Config Latch_out = Output 
Config Data_out = Output 

Dim Ic1 As Byte 
Dim Ic2 As Byte 
Dim Ic3 As Byte 

Set Clock_out 
Reset Latch_out 
Reset Data_out 

Ic1 = 0 
Ic2 = 0 
Ic3 = 0 

Print "Start" 

Do 
  Input "Ic1: " , Ic1 
  Input "Ic2: " , Ic2 
  Input "Ic3: " , Ic3 

  'Reset vége 
  Shiftout Data_out , Clock_out , Ic1 , 0                   'Első IC feltöltése 
  Shiftout Data_out , Clock_out , Ic2 , 0                   'Második IC feltöltése 
  Shiftout Data_out , Clock_out , Ic3 , 0                   'Harmadik IC feltöltése 
  'Annyiszor kell a Shiftout rész ahány IC van. 
  Set Latch_out                                             'Ez azért kell hogy az IC lábain "kiírja" amit az előbb betöltöttünk 
  Reset Latch_out 
Loop 

End 
Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00
Tartózkodási hely: Zalaegerszeg
Kapcsolat:

Hozzászólás Szerző: SirLeslie »

DOGMAN írta: Esetleg meg lehetne próbálni ide (13-asra) PWM lábat kötni és ezzel lehetne a fényerőt szabályozni.
Ha lett volna időm, - mint ahogy most sem tartozkodóm tartósan gép közelében - akkor egy hétszegmenses dcf77 óra projektet küldtem volna a versenyre, amiben pontosan így készül el annak idején a fényerő vezérlés: avr pwm kimenetével szabályozható a fényerő (megvilágítástól függően, hogy éjszaka ne vakítson). Tökéletesen használható, bevált megoldás.
Válasz küldése