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í 

Sleep módy Atmegy8

 
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
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: st květen 12 2010, 6:56    Předmět: Sleep módy Atmegy8 Citovat

Ahoj, potřeboval bych radu od někoho kdo má zkušenosti s ATmegou8 a jejími sleep módy. Potřeboval bych ATmegu vždy na 2 sekundy uspat, pak probudit, udělat nějakou operaci- například odeslat číslo UARTem, udělat jeden AD převod... a zase uspat. Podle datasheetu lze probouzet z Power-safe-mode událostí od Timer/counter2 pokud je clockován asynchronně... Ten Timer2 je ale pouze 8 bitový, takže nevím jak udělat tak dlouhou pauzu- mám k dispozici vnější krystal 16MHz... děkuju za reakce Milan
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
caven



Založen: Aug 15, 2006
Příspěvky: 417

PříspěvekZaslal: st květen 12 2010, 12:14    Předmět: Citovat

no pokud si myslím jak to je, může to být i špatně, ale na asynchronní zdroj ten timer může běžet jenom na hodinkový krystal ? Čili na 16MHz ti to nepoběží Wink a hlavně to má ještě předděličku 1:1024.

v datasheetu je napsáno : The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external
clock to the TOSC1 pin may result in incorrect Timer/Counter2 operation. The CPU main
clock frequency must be more than four times the Oscillator frequency.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: st květen 12 2010, 18:45    Předmět: Citovat

Ahoj, děkuju za odpověď. Dneska jsem přes den pořádně prostudoval datasheet a přečetl jsem si přesně to co jsi psal... Takže jsem v AVR studiu nastavil fuses na interní 8MHz oscilátor a na vstup Atmegy jsem připojil ten hodinkovej. Po zkouknutí osciloskopem kmitá jak má. Ale stejně se mi nepodařilo Atmegu vzbudit...(AS2 v ASSR mám nastavený, interrupty povolený taky) Musím zítra zkusit v přerušení zkusit hýbat hodnotou na pinu a kouknout na to osciloskopem... jinak nevím kde je chyba.
Ještě jak jsi psal o té předděličce- jestli jsem dobře pochopil datasheet tak ta se při asynchronním módu toho Timeru2 neuplatní....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st květen 12 2010, 18:51    Předmět: Citovat

marli napsal(a):
Ještě jak jsi psal o té předděličce- jestli jsem dobře pochopil datasheet tak ta se při asynchronním módu toho Timeru2 neuplatní....

Ale uplatní, dá se generovat přerušení s periodou až 8s.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: st květen 12 2010, 19:09    Předmět: Citovat

Opravdu? Tak to musím pročíst ještě jednou a zítra vyzkoušet... Docela by se mi to hodilo. Ale pořád nevím proč mi dnes nešla vzbudit z pover-safe-modu... jestli to nerozchodím zkusím sem zítra hodit kód který tam nahrávám. Děkuji za odpověď Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
caven



Založen: Aug 15, 2006
Příspěvky: 417

PříspěvekZaslal: st květen 12 2010, 19:11    Předmět: Citovat

ale jo jak píše Andrea

máš zroj 32768Hz to když vydělíš 1024 tak ti vyjde 32Hz a poté když 256 což je max hodnota timeru 2 vydělíš těmi 32 tak ti vyjde 8s
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
caven



Založen: Aug 15, 2006
Příspěvky: 417

PříspěvekZaslal: st květen 12 2010, 19:15    Předmět: Citovat

tak ho sem hoď teď
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: st květen 12 2010, 19:39    Předmět: Citovat

Tady je ten kód. Jak jsem říkal, mám nastaveno na 8 MHz interní oscilátor a na svorkách pro krystal mám hodinkovej krystal... mega se neprobudí...

kód:
#include <stdlib.h>
#include <avr/io.h>
#include <stdio.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#define F_CPU 8000000   //definovana rychlost taktu pro knihovnu "delay.h", interni RC
#include <util/delay.h>
#define USART_BAUDRATE 9600
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)


void main(void)

{




UCSRB |= (1 << RXEN) | (1 << TXEN);       
UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1);   

UBRRL = BAUD_PRESCALE;       
UBRRH = (BAUD_PRESCALE >> 8);     


ASSR = (1 << AS2);


//TCCR2 |= ((1 << CS22) | (1 << CS21) | (1 << CS20)); //zakomentovana preddelicka  1024
 
TIMSK |= (1 << TOIE2); 
TCCR2 |= (1 << CS10);
MCUCR |= (1<<SE)|(1<<SM1)|(1<<SM0);    // Povoleni sleep modu (power safe mod
sei();

while(1)
{
   
        asm("sleep");                         
      _delay_ms(200);

}
}


ISR(TIMER2_OVF_vect)
   {               
 
   _delay_ms(200);
   UDR = '0x55';
   
   }
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st květen 12 2010, 19:48    Předmět: Citovat

When entering Power-save mode after having written to TCNT2, OCR2, or TCCR2, the user must wait until the written register has been updated if Timer/Counter2 is used to wake up the device. Otherwise, the MCU will enter sleep mode before the changes are effective. This is particularly important if the Output Compare2 interrupt is used to wake up the device, since the Output Compare function is disabled during writing to OCR2 or TCNT2. If the write cycle is not finished, and the MCU enters sleep mode before the OCR2UB bit returns to zero, the device will never receive a Compare Match interrupt, and the MCU will not wake up.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: st květen 12 2010, 19:58    Předmět: Citovat

Děkuju Embarassed... nejspíš se mi tedy nezapíše žádná hodnota do TCCR2, což je dle datasheetu Timer/Counter stopped... Zítra zkusím v hardware... zatím Milan
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
marli



Založen: Mar 15, 2007
Příspěvky: 173

PříspěvekZaslal: čt květen 13 2010, 21:39    Předmět: Citovat

Tak jsem to dnes odzkoušel a vše funguje jak má, stačilo doplnit do kódu patřičné zpoždění. Děkuji za rady;)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
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
Strana 1 z 1

 
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.14 sekund