abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 9
    včera 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 21
    včera 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 19
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 6
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 5
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (13%)
     (16%)
    Celkem 148 hlasů
     Komentářů: 11, poslední dnes 18:00
    Rozcestník

    Dotaz: Problem s IRQ v AVR

    31.3.2006 15:13 David Sedláček | skóre: 20 | Žďár nad Sázavou
    Problem s IRQ v AVR
    Přečteno: 652×
    Zdravim.

    Mam jednoduchy program viz. nize. Ovsem problem je, kdyz se snazim prijmout znak pomoci preruseni generovaneho pri zaplneni prijimaciho bufferu (prijaty znak).

    Kdyz nadefinuji makro SIGNAL(SIG_UART_RECV), pri prijeti znaku vsechno zatuhne- respektive cip nejevi znamky prace. Pritom by mel znak prijmout, ulozit a opet se vratit k posledni operaci, nemylim-li se?

    Cip je ATtiny2313.

    #include < avr/io.h>
    #include < stdlib.h>
    #include < util/delay.h>
    #include < avr/interrupt.h>
    #include < avr/pgmspace.h>
    
    #define F_CPU 8000000
    #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
    #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
    #define DATA_1	PB0	//1. pin s prevodnikem
    #define DATA_2	PB1
    #define CLK	PB7
    #define CS	PB6
    #define U_REF	5000
    #define AD_const (U_REF/256)
    
    typedef unsigned char uc8;
    typedef unsigned int ui16;
    
    void usart_transmit(uc8 data);
    void usart_transmit_string(const char *s);
    void zmerit_u(void);
    
    uc8 newline='\n', c;
    
    void zmerit_u(void)
    {
        uc8 i, bity, hodnota1, hodnota2, buffer[10];
    
        sbi(PORTB,CS);
        _delay_ms(20);
        cbi(PORTB,CS);
        for(i=0,hodnota1=0, hodnota2=0, bity=128;i<8;i++)
        {
            if(bit_is_set(PINB,DATA_1))
        	    hodnota1+=bity;
    	if(bit_is_set(PINB,DATA_2))
    	    hodnota2+=bity;
    	bity>>=1;
    	sbi(PORTB,CLK);
    	cbi(PORTB,CLK);
        }
        usart_transmit(newline);
        usart_transmit_string(itoa((hodnota1*AD_const), buffer, 10));
        usart_transmit(newline);
        usart_transmit_string(itoa((hodnota2*AD_const), buffer, 10));
    }
    
    void usart_transmit(uc8 data)
    {
        while(!(UCSRA & (1<< UDRE)));	//pockame na vyprazdneni vysilaciho bufferu
        UDR=data;
    }
    
    
    
    void usart_transmit_string(const char *s)
    {
        register uc8 ch;
        while(ch=*s++)
        {
    	usart_transmit(ch);
        }
    }
    
    uc8 usart_receive()
    {
        while(!(UCSRA&(1<< RXC)));
        return UDR;
    }
    
    SIGNAL(SIG_UART_RECV)
    {
        c=usart_receive();
    }
    
    void main (void)
    {
        /*nastavime vstupne vystupni porty*/
        sbi(DDRB,CLK); /*enable port 9 for output*/
        sbi(DDRB,CS);
        sbi(DDRB,PD2);
        cbi(DDRB,DATA_1);
        cbi(DDRB,DATA_2);
        UBRRH=0;
        UBRRL=51;
        UCSRB=(1<< TXEN)|(1<< RXEN)|(1<< RXCIE);
    //    UCSRC=(1<< USBS)|(3<< UCSZ0);
    sei();
        
        usart_transmit_string("#Starting Ronjamon..\n");
        while(1)
        {
    	if(c=='z') zmerit_u();
    	else if(c=='h') usart_transmit_string("Ronjamon, sith@wifistar.net\n");
    	cbi(PORTB,PD2);
    	_delay_ms(1000);
    	sbi(PORTB,PD2);
    	_delay_ms(1000);
        }
    }
    

    Odpovědi

    31.3.2006 18:09 RTOS | skóre: 6
    Rozbalit Rozbalit vše Re: Problem s IRQ v AVR
    Skus mcu.cz, protože tento dotaz nemá nic společné s PC.
    In God We Trust, Inc.
    27.11.2006 20:23 Bert | skóre: 15
    Rozbalit Rozbalit vše Re: Problem s IRQ v AVR
    www.mcu.cz je uz delsi dobu z duvodu nemoci nedostupne.
    7.12.2006 14:27 olis
    Rozbalit Rozbalit vše Re: Problem s IRQ v AVR
    skus mcu.phorum.cz
    27.11.2006 18:39 tali
    Rozbalit Rozbalit vše Re: Problem s IRQ v AVR
    nemalo vy to byt takto?

    SIGNAL (SIG_UART_RECV) { // USART RX interrupt

    unsigned char c;

    c = UDR;

    usart_receive();

    }
    27.2.2009 16:14 xurpha
    Rozbalit Rozbalit vše Re: Problem s IRQ v AVR

    No, asi je uz pozde na odpoved, ale presto: neni blbost jeste testovat bit UDRE, kdyz jsme v preruseni? Pokud preruseni nastalo, tak je jasne, ze ceka v UDR dalsi byte prijaty z UARTu...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.