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.
Port bővítés Shift regiszterrel
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.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
Esetleg meg lehetne próbálni ide (13-asra) PWM lábat kötni és ezzel lehetne a fényerőt szabályozni.
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
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.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.