Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

simulace 4313 v AVR studiu
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: út leden 14 2014, 22:02    Předmět: simulace 4313 v AVR studiu Citovat

Ahoj,
prosím o pomoc, pokud se s tím někdo setkal.Vnější přerušení PCIE obsahuje u 4313 tři přerušení PCIE (0,1,2)(GIMSK), stejně tak samozřejmě vlajky (GIFR resp.EIFR). Ovšem při zapnutí simulace v AVR Studiu (verze 4.12.460) je ale zobrazeno jen přerušení PCIE bez číslice, překladač přerušení s číslicí také nezná. To při použití názvů bitů pro nastavení také působí potíže a simulace nefunguje. Netuší někdo, co by mohlo být příčinou?
Děkuji
jirS
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
vicious



Založen: Aug 10, 2007
Příspěvky: 669
Bydliště: 3 km od Humenného

PříspěvekZaslal: st leden 15 2014, 11:04    Předmět: Citovat

Napadlo ma, či máš vybratý správny procesor v Device selection Question
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: st leden 15 2014, 11:46    Předmět: Citovat

V instalaci WinAVR je v souboru iotn4313.h několik chyb proti Atmel datasheetu. V příloze je opravený soubor. Liší se pouze na několika málo místech. Zdroj je zde

kód:

#define PCMSK0 _SFR_IO8(0x020) // misto #define PCMSK _SFR_IO8(0x020)
#define GIFR _SFR_IO8(0x03A) // misto #define EIFR _SFR_IO8(0x03A)
#define PCIF1 3
#define PCIF2 4
#define PCIF0 5

#define PCIE1 3
#define PCIE2 4
#define PCIE0 5

// misto USART_xxxx
#define USART0_RX_vect_num  7
#define USART0_RX_vect      _VECTOR(7)  /* USART, Rx Complete */
#define USART0_UDRE_vect_num  8
#define USART0_UDRE_vect      _VECTOR(8)  /* USART Data Register Empty */
#define USART0_TX_vect_num  9
#define USART0_TX_vect      _VECTOR(9)  /* USART, Tx Complete */



iotn4313.zip
 Komentář:

Stáhnout
 Soubor:  iotn4313.zip
 Velikost:  4.14 kB
 Staženo:  90 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: st leden 15 2014, 12:17    Předmět: Citovat

Ahoj,
díky za reakce. (Správný typ procesoru jsem měl.) Dík za ten soubor, dnes to zkusím přeinstalovat, mohlo by to odpovídat tomu chování. Dám vědět.
Dík
JiriS
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: st leden 15 2014, 12:19    Předmět: Citovat

Nic neinstaluj znovu, jenom původní soubor nahraď novým. Je to určitě tím, vlastní zkušenost.

Edit: je v adresáři x:\WinAVR\avr\include\avr\
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: st leden 15 2014, 12:57    Předmět: Citovat

Ahoj,
dík za upozornění, měl jsem na mysli jen náhradu. Udělal jsem to, ale zatím se vše chová stejně- jednak v souboru tn4313def.inc je taky uveden jen PCIE bez číslic, možná bude chyba i tam. Simulátor taky zobrazuje jen jeden PCIE. Ale i tak díky, kdybyste někdo ještě něco věděli, budu rád.
JiriS
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: st leden 15 2014, 13:09    Předmět: Citovat

Tak nějak mě nedošlo že moje první zásadní otázka měla znít: Co používáš za překladač a toolchain ?
Vše co jsem psal je pro WinAVR a AVR Studio 4.19.

V simulátoru pak jednotlivé bity skutečně nejsou označeny jako např. PCIFx, ale stačí se koukat na příslušný registr a jeho odpovídající bity. Oprava *.h souboru řeší pouze překlad kódu tak, aby se daly použít stejná označení registrů a bitů jako v Atmel datasheetu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: st leden 15 2014, 17:27    Předmět: Citovat

Ahoj, už jsem se sem zase dostal. Používám Avr studio 4.12, a pracuju v assembleru. Co se týče překladu: když jsem zkusmo doplnil soubor tn4313.def o deklaraci PCIEx, překladač to okamžitě pochopil. Ale v zobrazení registru při simulaci se už tento přidaný bit nezobrazil, nebyl tedy ani přístupný pro ruční úpravu, stejně tak tam chybí bity Flag příslušné jednotlivým PCIEx. Zároveň, jak jsem vlastně uvedl, v definičním souboru tyto bity rovněž chybí. Je tu tedy rozpor mezi datasheetem a avrstudiem. Předpokládám, že datasheet je v pořádku, tedy je chyba v AVR st., a protože nemám ještě tolik zkušenotí, je to pro mě téměř neodladitelné. (Je možnost samozřejmě vždy přeprogramovat čip a zobrazovat výsledky na LCD, ale...) A navíc mám mírný hendikep- jsem poněkud starší, a tím pádem se spíš orientuji v ruské verzi angličtiny Smile .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: st leden 15 2014, 17:29    Předmět: Citovat

Pardon,
překouk jsem se, je to verze 4.19
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Standa33



Založen: Nov 07, 2009
Příspěvky: 296

PříspěvekZaslal: st leden 15 2014, 21:11    Předmět: Citovat

Pro nastavení externího přerušení se používají registry: GIMSK,EIFR,MCUCR,PCMSK,PCMSK1,PCMSK2.

v registru GIMSK se povoluje přerušení INT1,INT0,PCIE(PCINT0..15)
takže pro jakékoliv přerušení od PCINTx je nutné nastavit PCIE = 1.

Příznak přerušení je v registru EIFR.PCIF - aktivací jakéhokoliv PCINTx se nastaví na 1.

Pomocí registrů:
PCMSK - PCINT(7..0) - (v AVR Studiu je v záložce CPU)
PCMSK1 - PCINT10..8
PCMSK2 - PCINT(17..11)
se provede výběr vstupu.

MCUCR - nastavení úrovně aktivace INT0,INT1 a nastavení režimu spotřeby.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: st leden 15 2014, 22:23    Předmět: Citovat

Dík, Stando33.
V podstatě jsem tohle taky vykoumal. Zaráží mě ale, že v datasheetu jsou nejen uvedeny bity PCIE0(1,2) (GIMSK,b5,4,3), ale také odpovídající vlajky v EIFR(bit5,4,3), t.j. PCIF0(1,2) a také má procesor odpovídající vektory přerušení PCINT0,PCINT1 a PCINT2. Takže jsem byl překvapený, když přakladač hlásil chybu při pokusu o nastavení (1<<PCIE0). V podstatě tedy datasheet neodpovídá skutečnosti a AVR studio simuluje procesor, nebo druhá možnost- chyba v AVR Sudiu. Datasheet jsem si stáhl asi před týdnem, je společný jak pro 4313, tak pro 2313 jen s rozdíly, které nejsou pro aplikaci tak důležité. Jinak, jak popisuješ, simulátor i překladač mi tak funguje. Ale protože i v souboru xxx.XMLS (snad jsem to nepopletl), včetně tnxxxdef je popis stejný, jak jsi uvedl, předpokládám, že i procesor takhle pracuje a neměl by nakonec problém to odladit. Ale stejně si myslím, že by datasheet měl odpovídat skutečnosti.
Zatím dík
Ahoj
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: čt leden 16 2014, 9:59    Předmět: Citovat

Obávám se že v simulátoru je to tak, jak píše Standa33, ale v reálu "na procesoru" to bude dle datasheetu. PCINT1, PCINT2, PCMSK1 a PCMSK2 byly doplněny do datasheetu až v pozdější revizi (viz. Datasheet Revision History). Na druhou stranu je mě záhadou že i v posledním AVR Studiu 6.1 je to stejně. Bohužel momentálně nemám procesor v šuplíku, takže to nevyzkouším.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
AB1



Založen: Nov 23, 2009
Příspěvky: 312

PříspěvekZaslal: čt leden 16 2014, 22:09    Předmět: Citovat

citace:
Takže jsem byl překvapený, když přakladač hlásil chybu při pokusu o nastavení (1<<PCIE0).

Pokusil jsem se opravit soubor "tn4113def.inc". Bit PCIE0 (a jiné) nebyl definovaný. Můžeš vyzkoušet.



tn4313def_new.zip
 Komentář:

Stáhnout
 Soubor:  tn4313def_new.zip
 Velikost:  5.84 kB
 Staženo:  104 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiriS



Založen: Jan 14, 2014
Příspěvky: 610
Bydliště: Ašsko

PříspěvekZaslal: čt leden 16 2014, 22:33    Předmět: Citovat

Dík za odpovědi. Definici v tn4313.def jsem taky zapsal, takže překladač to vzal v pořádku. Ale v simulátoru ty bity nejsou zobrazeny, tím není možné nasimulovat přerušení jiné než původní (AVR podle mých poznatků neumí vygenerovat přerušení změnou hodnoty na příslušném pinu, musí se ručně nastavit vlajka v EIFR. A to taky znamená, že se generuje pouze vektor přerušení PCIE, nikoliv PCIE1 a 2.
Do historie jsem moc nelezl, mám s angličtinou ten problém, že jí moc nerozumím, takže louskám co to jde.
No ale už jsem se rozhodl, 4313 pořídím, neměl by být problém zjistit, jak 4313 pracuje v reálu a podle mtoho program napsat.
V každém případě DÍKY všem, moc mi to pomohlo ujasnit situaci a zorientovat se. Už jsem i uvažoval nad jiným typem (mega8).
Ještě jednou moc díky, opravdu jste mi pomohli.
JiriS
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: pá leden 17 2014, 10:20    Předmět: Citovat

Taky mě to nedalo a jednu tiny jsem objednal. Příští týden vyzkouším a pak poreferuji.

citace:
Do historie jsem moc nelezl, mám s angličtinou ten problém, že jí moc nerozumím, takže louskám co to jde.

Ruština mě povinně provázela celé moje základní a střední vzdělávání, nebudu na tom o moc líp Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.17 sekund