Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha 7 – Még egy megosztó – de gyors – étel: resztelt máj
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- sh4d0w: Én és a számítógép
- Magga: PLEX: multimédia az egész lakásban
- koxx: Amikor a prófécia testet ölt – Finalmouse ULX Prophecy 'Scream' Classic
- Mr Dini: Mindent a StreamSharkról!
- Brogyi: CTEK akkumulátor töltő és másolatai
-
LOGOUT
Ez itt, az elektronikával hobbiból foglakozók fórumtémája.
Lentebb összegyűjtötttem néhány elektronikával kapcsolatos, hasznos linket.
Új hozzászólás Aktív témák
-
DarkByte
addikt
AVR mikorprocikkal (esetleg Arduino-val) kapcsolatban van itt valaki aki kicsit profibb?
Elkezdtem összerakni az Arduino Uno-ra (ATmega328p) a C64-es magnó emulátort, a 3-mas tűn akarok PWM kimenetet csinálni úgy hogy a forrás TAP fájlt stream-elem neki USB porton keresztül. A C64-es szalagokon változó hosszúságú pulzusok vannak rögzítve (mindegyik 50%-os duty cycle mellett), ezek hossza van leírva a TAP fájlban byte-onként.
Nagy nehezen sikerült kihámoznom a doksiból hogyan is tudok core-tól független PWM jelet generálni úgy hogy a frekvenciát én tudom megmondani.
pinMode(3, OUTPUT); // PWM on PIN3. This pin is managed by Timer2 (8-bit)
TCCR2A = _BV(WGM21) | _BV(WGM20); // Non inverted PWM on port B (COM2B1) which is PIN3, fast PWM (WGM21+WGM20)
TCCR2B = _BV(WGM22) | _BV(CS22); // Compare match on port B (WGM22), clock divider is 256 (CS22)= 1 tick 16 us @ 16Mhz Arduino
OCR2A = 48; // TOP. One pulse is this long in ticks.
OCR2B = 24; // COMPARE. Pulse goes from HIGH to LOW when this tick is reached. C64 needs 50% duty (always half of TOP).Ahhoz hogy a felfutó élnél (a pulzus végekor ha jól értem mert ekkor csordul túl a timer counter-e) tudjam változtatni a Timer adatokat, még egy overflow alapú interrupt-ot is belövök, majd a PIN-re kapcsolom a jelgenerátort:
TIMSK2 |= _BV(TOIE2); //activate interrupt on overflow (TOV flag, triggers at OCR2A), calls interrupt rutine on overflow
TCCR2A |= _BV(COM2B1); // enable PWM output on PIN3Ez eddig tök szép és jó, a felső kódsor hatására kapok 768 mikroszekundum hosszú pulzusokat, amelyeknek pont a felénél (384 szekundummal a felfutó él után) van a lefutó éle.
Próbaképpen megpróbáltam letiltani az interrupt-ban az egészet már közvetlen indulás után:
ISR(TIMER2_OVF_vect, ISR_NOBLOCK) // Interrupt rutin called on LOW-HIGH transitions
{
TCCR2A &= ~(_BV(COM2B1)); //deactivate pin 3 PWM
TIMSK2 &= ~(_BV(TOIE2)); //deactivate interrupts on overflow
}A gond csak az hogy ez nem történik meg. Az interrupt kezelés frankón leáll, viszont a PWM jel megy tovább a PIN-en. Ha kiveszem az interrupt kikapcsolást akkor viszont megáll a PWM, tehát feltételezem hogy pár ciklus után még is csak letiltja az egészet.
Valaki nem vágja miért is van ez így, illetve mit lehetne csinálni hogy mégis megálljon amikor kell? Azt olvastam a doksiban hogy a pulzus vége előtt akárhogy állíthatom a regisztereket, az csak a következő pulzusra fog kihatni. Viszont itt valami mégsem stimmel.
Új hozzászólás Aktív témák
- OLED TV topic
- Filmvilág
- Milyen TV-t vegyek?
- Milyen belső merevlemezt vegyek?
- Teljes verziós, ingyenes mobil játékok és alkalmazások
- Apple iPhone Air - almacsutka
- Sweet.tv - internetes TV
- A fociról könnyedén, egy baráti társaságban
- Álláskeresés, interjú, önéletrajz
- PlayStation 5
- További aktív témák...
- Honor Magic 7 Pro 512 Gb - AI Pro kamera, 6,8 120 Hz LTPO OLED, Snapdragon 8 Elite,3 hó gari!
- Samsung Galaxy Z Fold6 Navy Duplakijelzős produktivitás, 120 Hz, Galaxy AI,2027. 09. 19
- Apple iPhone Air Space Black Pehelykönnyű elegancia,100% akku (6 ciklus) Garancia 2026. 09. 25
- Alienware AW3423DWF Ívelt Gamer Monitor!34"/QD-OLED/165hz/0,1ms/10BIT/Freesync-G-sync/Alien FX
- Iphone 15 Pro Max 512GB Natúr titán
- ÁRCSÖKKENTÉS ASUS HD6870 videókártya
- HIBÁTLAN iPhone XR 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3267, 96% Akkumulátor
- Samsung S23+ 256GB Állapot: 10/10 6 hónap jótállás!
- Eladnád a telefonod? KÉSZPÉNZES OKOSTELEFON FELVÁSÁRLÁS azonnali fizetéssel!
- Gamer PC-Számítógép! Csere-Beszámítás! I5 12400F / RTX 3070 8GB / 32GB DDR4 / 1TB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest