abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 3
    včera 17:33 | Nová verze

    Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:33 | IT novinky

    Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | IT novinky

    Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.

    Ladislav Hagara | Komentářů: 1
    10.9. 21:22 | Nová verze

    Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    10.9. 18:22 | IT novinky

    T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.

    Ladislav Hagara | Komentářů: 3
    10.9. 13:22 | IT novinky

    Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.

    Ladislav Hagara | Komentářů: 0
    10.9. 05:44 | Nová verze

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 17.0. Přidáno bylo 4 803 nových znaků. Celkově jich je 159 801. Přibylo 7 nových Emoji.

    Ladislav Hagara | Komentářů: 0
    9.9. 21:00 | IT novinky Ladislav Hagara | Komentářů: 17
    9.9. 18:33 | Nová verze

    Realtimová strategie Warzone 2100 (Wikipedie) byla vydána ve verzi 4.6.0. Podrobný přehled novinek, změn a oprav v ChangeLogu na GitHubu. Nejnovější verzi Warzone 2100 lze již instalovat také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 1
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (83%)
     (7%)
     (2%)
     (2%)
     (4%)
     (2%)
    Celkem 164 hlasů
     Komentářů: 12, poslední 10.9. 13: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: 677×
    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.