Zaslal: čt červenec 05 2007, 9:52 Předmět: ATmega8 negovanie bitu
Ahojte,
velmi by mi pomohla pomoc s nasledovnym problemom - chcem negovat jeden bit vystupneho portu bez toho, aby som nejak ovplivnil dalsie bity... Ako nato? Nenasiel som na to ziadnu instrukciu ako je napr. v klasickych atmeloch napr.: cpl P1.7. Este teda podotknem, ze to programujem v assembleri pre AVR. Zrejme na to bude potrebny nejaky podprogramik ale vsetky moje napady sa mi javia zlozite a neverim, ze by sa to nedalo napisat pomocou 2-3 instrukcii...
Prosim poradte!
Vdaka
Zdravím. Tam toho asi moc nevymyslíš, instrukce přímo pro negaci pinu v AVR skutečně není. Bych si pro to třeba rezervoval jeden registr, který bych negoval instrukcí com a pak to vypouštěl na ten pin asi takhle.
Pokaždé když zavoláš tenhle podprogram tak se např. pin 5 překlopí.
NEGA: com R20 ;one´s complement
sbrc R20,5 ;Skip if Bit in Register Cleared
cbi PORTD,5 ;Clear Bit in I/O Register
sbrs R20,5 ;Skip if Bit in Register Set
sbi PORTD,5 ;Set Bit in I/O Register
ret
... az nato, ze bez toho com R20, lebo potom je to negovane 2x a vysledok je tym padom rovnaky...
miesto com R20, treba napisat in R20, PORTD. Aspon podla mna.
AVR nedovede XOR mezi bitovou maskou - literálem a výstupním registrem? To bych považoval za standardní řešení při potřebě negovat jeden z řady výstupních bitů.
Založen: Jun 13, 2007 Příspěvky: 68 Bydliště: BRNO
Zaslal: čt červenec 05 2007, 17:05 Předmět:
Jenom ještě doplním. Např. u attiny2313 jde tohle překlápění dělat jednoduše zapsáním 1 do registru PIN: sbi PIND,3
Poté se bit 3 v PORTD neguje.
V datasheetu je to pod názvem "Toggling the Pin".
U atmega8 tohle zrovna nefunguje.
Coat - zdasa, ze sa vyznas! robis casto s AVRkami? Ja som doteraz len s Atmelmi x51 ale chcem sa naucit riadne aj AVR. S tymto by si nevedel poradit? Som robil dnes pokusy so znizovanim spotreby na ATmega8, nastavil a pripojil som krystal 32,768kHz aj to s tym paradne chodi lenze mi to viackrat nejde preprogramovat . Pouzivam Ponyprog a vyzera to tak, ze funguje len ked je nastaveny interny oscilator. Odkedy som nastavil konfiguracnymi bitmi externy neda sa ani citat ani zapisovat... Asi budem musiet nastavit konfiguracne bity na interny oscilator na nejakom inom programatore vsak?
Založen: Jul 30, 2005 Příspěvky: 71 Bydliště: Brno
Zaslal: pá červenec 06 2007, 11:15 Předmět:
Jestli jde na ponyprogu nastavit pomalejsi frekvence prenosu dat po ISP, tak to zkus. Je potreba, aby na vodici SCK byla frekvence nizsi nez 1/4 hodin, tj. pro tebe neco pod 8 kHz.
Jinak:
a) sehnat jiny programator, ktery toto umi (ja mam AVR Dragon, kde se da nastavit ISP frekvence od 51 Hz do 8 MHz)
b) vnutit procesoru vyssi frekvenci hodin zvnejsku (misto Xtalu pripojit vystup treba 4 MHz z generatoru nebo treba z RC oscilatoru z nejakych hradel apod.)
c) pouzit paralelni programovani (nebo JTAG, kdybys mel procesor, ktery ho umi) - tyto metody nemaji problemy u procesoru bez hodin. kmitoctu nebo s jeho nizkou frekvenci
Problemy s nizkou hodinovou frekvenci jsou i pri pouzivani DebugWire, ale az pri frekvencich hodin pod cca. 100 kHz a je to loterie, nekdy bezi a jindy ne.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.