Stránka 2 z 2
Napsal: 23 led 2014, 22:35
od jiriS
Ahoj,
už 4313 mám, jen jsem se k tomu ještě nedostal.
V ruštině jsem dělal i odborné texty, ale domluvit se už byl taky problém. Angličtina ale teď chybí, protože ale vše skáče z hlavy rychleji, než to přečtu, nelámu to přes koleno. Pochopit nějakou funkci s google překladačem je jinak docela fuška.
JiříMS
Napsal: 24 led 2014, 09:26
od FHonza
Dneska ráno jsem Tiny vyzvedl u slona. Přes víkend vyzkouším a poreferuji.
Napsal: 25 led 2014, 21:55
od jiriS
Ahoj,
tak jsem se dostal k tomu, že 4313 vyzkouším, ale nemůžu dostat do ní program. Progrmuji přes ponyprog, 2313 mi jde, ale u 4313 hlásí neznámé zařízení a v nabídce zařízení není uvedená. Takže další překážka...
Napsal: 25 led 2014, 21:55
od jiriS
Ahoj,
tak jsem se dostal k tomu, že 4313 vyzkouším, ale nemůžu dostat do ní program. Progrmuji přes ponyprog, 2313 mi jde, ale u 4313 hlásí neznámé zařízení a v nabídce zařízení není uvedená. Takže další překážka...
Napsal: 25 led 2014, 22:59
od jiriS
Tak jsem našel, jak v PonyProgu zapsat program do paměti:
1.. Nastavení zařízení ATTINY45
2. Napište program (FLASH)
3. Klikněte na tlačítko "Ignorovat"
Program jsem tam dostal, vymazání se nedaří, fuse jsem neriskoval.
Napsal: 26 led 2014, 00:19
od jiriS
Ahojte,
koho toto téma ještě zajímá:
Ověřil jsem to a vyzkošel v reálu. Jak píše FHonza, procesor fungje podle datasheetu, t.j. podle masek přerušení PCIE0,1,2 a je třeba správně volit i PCMSK0,1,2 a správný vektor přerušení. Na simulátoru to nepůjde nastavit (jedině po úpravě souboru tn4313.def), PCIEx je tak nutné nastavovat číslem a ne názvem bitu. V každém případě to nebude vidět na registrech (GIMSK).
Ještě jednou dík za pomoc.
JiříMS
P.S.: Kde to je, u slona? Většinou kupuju v GM, pokud jde o větší množství, u TME.
Napsal: 26 led 2014, 21:20
od FHonza
Taky jsem to vyzkoušel, je to jak je v datasheetu psáno.
Kód: Vybrat vše
#include <avr/io.h>
#include <avr/interrupt.h>
// LED sviti "na" log 0
// zapojeny katoda na PD0, PD1, anoda na VCC + rezistory
// testovani GIFR je tady zbytecne, zde jenom pro ukazku "ze to funguje"
ISR(PCINT_B_vect)
{
if (GIFR & (1 << PCIF0))
{
PORTD = 0xfd; // sviti druha LED
}
}
ISR(PCINT_A_vect)
{
if (GIFR & (1 << PCIF1))
{
PORTD = 0xfc; // sviti obe LED
}
}
ISR(PCINT_D_vect)
{
if (GIFR & (1 << PCIF2))
{
PORTD = 0xfe; // sviti prvni LED
}
}
int main()
{
DDRA = 0; // vsechny vstupni
PORTA = 0xff; // pull-up nastaveny
DDRB = 0;
PORTB = 0xff;
DDRD = 3; // vstupni vsechny krome PD0, PD1
PORTD = 0xff; // pull-up nastaveny, na PD0 a PD1 log. 1, tj. LED nesviti
GIMSK = (1 << PCIE0) | (1 << PCIE1) | (1 << PCIE2); // povoleno preruseni od vsech pinu PCINT0..17
PCMSK0 = (1 << PCINT0); // tj. PB0
PCMSK1 = (1 << PCINT9); // tj. PA1
PCMSK2 = (1 << PCINT17); // tj. PD6
sei();
while (1);
return 0;
}
P.S. u slona říkám GM podle loga
Napsal: 26 led 2014, 21:37
od jiriS
Zdravím,
jsem rád, že jsme došli ke stejnému závěru. Já dělám v assembleru, a AVR studio mě tím dokonale zmátlo. Většinou se spíš stává, že někde udělám chybu, něco přehlídnu nebo blbě pochopím.
V každém případě dík za pomoc a zájem.
JiříMS