Atmega16 uart – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Atmega16 uart – Mikrokontroléry – Fórum – Programujte.comAtmega16 uart – Mikrokontroléry – Fórum – Programujte.com

 

jur3c0
Newbie
31. 1. 2013   #1
-
0
-

zdravim hladam niekoho kto by mi pomohol programovat uart na atmege16 v podstate len nejake zakladne kody ide o ovladanie cez bluetooth stacilo by nejake podmienky na prijimanie ascii pismen mail: j.bobosik@gmail.com

len ma prosim vas neodkazujte na datasheet 

Nahlásit jako SPAM
IP: 80.242.44.–
KIIV
~ Moderátor
+43
God of flame
31. 1. 2013   #2
-
0
-

u megy16 je jedina zaludnost ze registry UCSRC a UBRRH jsou na stenem miste v pameti a kam se zapise se urci pomoci URSEL (MSB)

A pokud nejsi schopen pochopit datasheet, tak aspon nazhav google s "atmega16 USART example" ... vyflusne to ruzny examply a tak...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
31. 1. 2013   #3
-
0
-

Hlavně že je v datasheetu ukázka inicializace, jestli jsem se dobře díval na str. 150. Stačí přizpůsobit Baudrate, počet dat. bitů a stop bitů.Na dalších stránkách jsou i ukázky příjmu a vysílání a tabulka pro různé Baudrate. Ale když nechceš datasheet....

hu

Nahlásit jako SPAM
IP: 195.178.67.–
jur3c0
Newbie
6. 3. 2013   #4
-
0
-

a teda ak by som mal baudrate 19200 8datovych a 1stop bit a chcel by som len aby prijimal napr. ascii znaky staci jeden a vlastne chcel by som to preniest na podmienku napr. ze ak dostane C tak PORTA=2;

diky

Nahlásit jako SPAM
IP: 80.242.44.–
jur3c0
Newbie
6. 3. 2013   #5
-
0
-

v podstate by som chcel nieco taketo- http://microhobby.net/26-06-2011/projects/bluetooth-robot-bt-bot/ len na atmegu 16 ako ma na konci programu to ze ma na kazde pismenko nieco len nwm ako napisat tie veci okolo 

Nahlásit jako SPAM
IP: 80.242.44.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #6
-
0
-

tak je obvykle zvykem zacit jednoduchejma vecma... blikat diodou... pak se k tomu muze pribalit usart

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jur3c0
Newbie
6. 3. 2013   #7
-
0
-

mne skor ide o to ze neviem moc s tymi tabulkami co a ako v datasheet doteraz mi stacilo programovat len digitalne vstupy a vystupy 

Nahlásit jako SPAM
IP: 80.242.44.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #8
-
0
-

jaka tabulka napriklad?

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jur3c0
Newbie
6. 3. 2013   #9
-
0
-

myslim to s tymi registrami ze ked chcem napr. na PWM si pamatam ze tam bolo ak chcem fast pwm ........

take tie nastavovacie prikazy

Nahlásit jako SPAM
IP: 80.242.44.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #10
-
0
-

tak si to zacnes vypisovat na papir... jakej je to registr, jaky bity potrebujes nastavit aby to bylo treba zrovna fast PWM a z jakeho registru se bere maximalni hodnota a tak... neni to tak slozity... staci si precist jak to fast pwm funguje.. jestli treba nepotrebujes phase correct pwm a tak... proste cist (pripadne si to prekladat) a podle toho si vypisovat co kde a jak ma byt nastaveny

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jur3c0
Newbie
6. 3. 2013   #11
-
0
-

vsak mozem vyskusat ale nwm ci volaco dam ale vsak potom pls by ste nemohli nieco sem hodit ak by som to z vlastnej hlavy nevedel :D este zajtra pokukam pretoze ked som napr. pred rokom robil to pwm tak to mi jeden pan tu mal meno tusim illioner pomahal ale nwm co s nim je pretoze na mail neodpisuje a on mi chcel pomahat programovat 

Nahlásit jako SPAM
IP: 80.242.44.–
7. 3. 2013   #12
-
+1
-
Zajímavé

Zkus svou tvořivost, vlastní zkušenost je nejcennější a nejtrvalejší. Pro AVR je zdarma Atmel Studio, můžeš zkoušet na simulátoru, co to dělá. V případě, že ti nějaký kód nebude fungovat podle představ, dej ho sem. Vždy se tu najde někdo s dobrou radou. Když ti někdo postne hotový kód, moc se nenaučíš.

Ještě že sis vybral 8-bitový AVR, proti 32-bitovému je to sranda.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
jur3c0
Newbie
10. 3. 2013   #13
-
0
-

nech robim co robim toto je asi moje maximum :D  [code]#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL //Defines clock speed
#define USART_BAUDRATE 9600 //Baudrate for serial comm.
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
#include <util/delay.h>
 

char rotDir = 'L';
char state;

void forward(void)
{
    state = 'U';
    PORTD=120;PORTA=1;
   
}

void backward(void)
{
    state = 'D';
    PORTD=116;PORTA=2;
 
}

void rightTurn(void)
{
    PORTD=120;PORTA=0;
    _delay_ms(350);
    if (state == 'U') forward();
    else if (state == 'D') backward();
}

void leftTurn(void)
{
    PORTD=112;PORTA=1;
    _delay_ms(350);
    if (state == 'U') forward();
    if (state == 'D') backward();
}

void leftPirouette(void)
{
    state = 'a';
    rotDir = 'L';
    //PORTB = 0b00001010;
    PORTD=116;PORTA=1;
   
}

void rightPirouette(void)
{
    state = 'e';
    rotDir = 'R';
    //PORTB = 0b00010001;
    PORTD=120;PORTA=2;
   
}

void stop(void)
{
    if (state == 'U')
    {
        backward();
        _delay_ms(40);
    }

    else if (state == 'D')
    {
        forward();
        _delay_ms(40);
    }
    
    state = 'C';
    PORTD=112;PORTA=0;   
_delay_ms(1000);
   
}


//Serial com. Interrupt Service Routine (runs each time a byte is received)
ISR(USART_RX_vect)
{
    char ReceivedByte;
    ReceivedByte = UDR; // Retrieves byte from serial port (bluetooth module)
    //UDR = state; // Echoes it back for fun

    switch (ReceivedByte) //Which ASCII character was received?
    {
        case '!':  
                    break;
        
        case 'U':   forward();
                    break; //Increase PWM duty cycle

        case 'C':   stop();
                    break; //Break motor by raising both direction inputs, PWM duty cycle 0%

        case 'D':   backward();
                    break; //Decrease PWM duty cycle

        case 'L':   leftTurn();
                    break;

        case 'R':   rightTurn();
                    break;

        case 'a':   leftPirouette();
                    break;

        case 'e':   rightPirouette();
                    break;

        default:    UDR = '?';
                    break; //Character unknown to my routine, discard character
 
    }
        
}


int main(void)
{
    DDRC=0;
  DDRD=124;
  PORTC=255;
  OCR1A=255;
  OCR1B=255;
  TCCR1A = (1<<COM1A1) | (1<<COM1B1) |(1<<WGM10);
  TCCR1B = (1<<WGM12) | (1<<CS10);
  DDRA=3;
  DDRB=0;
  PORTB=255;
  PORTA=3;

    //UART
     UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); //Enable Tx and Rx
    UCSRC |= (1 << UCSZ0) | (1 << UCSZ1);
    UBRRL = BAUD_PRESCALE;          //Sets
    UBRRH = (BAUD_PRESCALE >> 8); //baudrate registers
    UCSRB |= (1 << RXCIE); //Enable USART-interrupt


    /* This program is completely interrupt driven, so nothing goes on in while loop*/
    while(1); //Never gets out from here!

    return 0; //Never reaches this point!
}[/code]
ale nejde uz nwm co tam mam spravit snazil som sa spojit ten na microhobby s atmegou

http://microhobby.net/26-06-2011/projects/bluetooth-robot-bt-bot/

Nahlásit jako SPAM
IP: 92.245.214.–
misoj
~ Anonymní uživatel
3 příspěvky
12. 3. 2013   #14
-
0
-

#13 jur3c
Chýba ti tam globálne povolenie prerušení: sei();

Nahlásit jako SPAM
IP: 217.67.19.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

ATmega16 UART — založil Pelda

Uart buffer — založil davixxx

Problémy s UART — založil marpit

Uart příjem z AVR — založil Ghulas

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý