Obsluha pøerušení na "nepøerušitelných" pinech

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
hall

#16 Příspěvek od hall »

Jestli plácám blbosti tak mì oprav. S atmelama dìlám teprve 2 týdny, tak nevím co tímhle myslíš. Prostì mám mcu na 14.7456 MHz a timeru1 mám nastavený dìlitel 1 a obsluhuju pøerušení.

Uživatelský avatar
mihal
Příspěvky: 1812
Registrován: 06 dub 2005, 02:00
Bydliště: Zilina

#17 Příspěvek od mihal »

A isto je u Atmela frekvencia oscilatora zaroven frekvencia zbernice? Bezne to byva f/2 a f/4 :?

hall

#18 Příspěvek od hall »

Asi jo. Podle toho mi bìží v jiném pøerušení s dìlitelem 256 hodiny a ty se nezpožïují ani nepøedbíhají.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#19 Příspěvek od Andrea »

hall píše:Jestli plácám blbosti tak mě oprav. S atmelama dělám teprve 2 týdny, tak nevím co tímhle myslíš. Prostě mám mcu na 14.7456 MHz a timeru1 mám nastavený dělitel 1 a obsluhuju přerušení.
Přerušení od čeho, od přetečení nebo od compare match? Jestli od přetečení, tak je frekvence přerušení 14745600/65536 [Hz]. Jestli od compare, tak je frekvence přerušení 14745600/(hodnota v compare registru) [Hz]

hall

#20 Příspěvek od hall »

Od pøeteèení. Proè tedy hodiny ukazují správnì když je mám v pøeteèení timeru0 bitSet(TCCR0, CS02);/256 dìlitel a v obsluze pøerušení mám TCNT0=0? Tyhle dvì hodnoty sice dávají 65536, ale obì mohu mìnit a pak dostanu dìlitel který potøebuju.

Uživatelský avatar
Kado
Příspěvky: 44
Registrován: 27 říj 2007, 02:00
Bydliště: PB, SVK

#21 Příspěvek od Kado »

Atmega16 nema delicku taktov z oscilatora, takze kmitocet osc je pouzity pre "napajanie" ostatnych casti mcu. Pri kazdom casovaci si mozes nastavit delicku tohto kmitoctu na 1,8,64,256,1024,
ak mas kmitocet krystalu 14xxxMhz a delicku pre pouzity timer, mas nastavenu na 1 (no prescaling), a mas nastav. rezim CTC (compare match), tak potom hodnota v reg OCRx udava vrchol,
z datashitu je zrejme, ze ak je OCRx = 0; a mas rezim casovaca CTC bez delenia kmitoctu a "vystup casovaca" je na prislusny pin, tak frekvencia merana na tomto pine bude polovica z frekvencie krystalu...

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#22 Příspěvek od Andrea »

hall píše:Od přetečení. Proč tedy hodiny ukazují správně když je mám v přetečení timeru0 bitSet(TCCR0, CS02);/256 dělitel a v obsluze přerušení mám TCNT0=0? Tyhle dvě hodnoty sice dávají 65536, ale obě mohu měnit a pak dostanu dělitel který potřebuju.
Nechápu otázku.

hall

#23 Příspěvek od hall »

Andrea: mám obsluhu pøeteèení timeru0, ta udává délku vteøiny pro hodiny. Pokud se provede Xkrát, tak pøibude sekunda.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#24 Příspěvek od Andrea »

hall píše:Andrea: mám obsluhu přetečení timeru0, ta udává délku vteřiny pro hodiny. Pokud se provede Xkrát, tak přibude sekunda.
No a jak zněla otázka?

hall

#25 Příspěvek od hall »

No spíš jsem ukazoval, že dìlitel není vždy 65536 a mùže být i 1, což asi neplatí u timeru1, když ho ke všemu používám na 9-bit pwm.

Zirafka
Příspěvky: 819
Registrován: 20 srp 2006, 02:00

#26 Příspěvek od Zirafka »

Hmm, asi si také sedím na vedení. Tím dělitelem myslíš předděličku a nebo přímo TIMER1? Pokud předděličku, tak tu si můžeš nastavit jak chceš, ale nevím, jak chceš nastavit TIMER1 na dělení 1

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“