UART

Odgovori
Message
Autoru
ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

UART

#1 Post od ivana96 » Pon Maj 28, 2018 8:07 pm

Je l zna neko da uradi? Ja znam samo prvu tacku..Drugu ne znam ni kako da pocnem..a ovo je pocetni kod,tj koji je dat

Inicijalizovati lampice LD1-LD8 kao izlazne pinove,
ugasiti ih i inicijalizovati serijsku komunikaciju
* (5 poena) Napraviti funkciju fun1() koja proverava stanje UART-a.
Ukoliko je učitan neki karakter, funkcija provarava da li je taj
karakter cifra, i ako jeste ispusuje tu cifru na lampicama LD1-LD4
u binarnom obliku i vraća odgovarajuću vrednost iz intervala 0-9.
Ukoliko učitani karakter nije cifra, funkcija vraća vrednost -1.
Funkciju je moguće testirati u loop() funkciji sa delay-om od 50ms.
* (6 poena) Inicijalizovati Timer 1, sa preskalerom 256, koji je zakačen
za odgovarajući interapt. Svaki put kada se desi interapt, pročitati
stanje UART-a funkcijom fun1() i ispisati učitanu cifru na
odgovarajućim lampicama. Nakon svake učitane cifre, sabrati sve
do tada učitane cifre. Postaviti prekid eksternog uređaja koji
prilikom paljenja prekidača SW2 ispisuje sumu unetih cifara na UART.
* (7 poena) Implementirati svoju funkciju pinModeOut(port, bit) koja
postavlja određeni pin na datom portu kao izlazni pin. Zadatak je
dozvoljeno uraditi i pristupanjem ovim lokacijama preko unapred
definisanih struktura (p32_ioport,...)
*/




extern "C" void __attribute__((interrupt(),nomips16)) Timer1Handler(void);

#define bit2mask(bit) (1<<bit)
enum gpio_ports { PORT_A=1, PORT_B, PORT_C, PORT_D, PORT_E, PORT_F, PORT_G };
unsigned int gpio_base_addr[PORT_G] =
{0xBF886000, 0xBF886040, 0xBF886080, 0xBF8860C0, 0xBF886100, 0xBF886140, 0xBF886180 };
enum gpio_regs { GPIO_REG=0, GPIO_CLR, GPIO_SET, GPIO_INV };

int frequency = 1; // Podesiti po potrebi

//************************************************************************
void EnableTimer(void)
{
T1CON = TACON_PS_256; // izbor preskalera

TMR1 = 0; // Obrisi Timer1 counter
PR1 = (__PIC32_pbClk / 256 / frequency);
// Serial.println(PR1);

// inicijalizacija prekida
setIntVector(_TIMER_1_VECTOR, Timer1Handler);
clearIntFlag(_TIMER_1_IRQ);
setIntPriority(_TIMER_1_VECTOR, _T1_IPL_IPC, _T1_SPL_IPC);
setIntEnable(_TIMER_1_IRQ);

T1CONSET = TACON_ON; // pusti ga da broji
}

void setup()
{

}

void loop()
{

}
Nemate potrebne dozvole da pogledate prikačene fajlove u ovom postu.

Korisnikov avatar
elektricar024
Site Admin
Postovi: 1062
Pridružio se: Ned Maj 15, 2016 1:27 pm
Lokacija: Subotica
Kontakt:

Re: UART

#2 Post od elektricar024 » Uto Maj 29, 2018 4:13 am

Smatram da ti programiraš u Atmel Studio jel?
Ne postoji višak alat, samo retko korišten :confusion-confused:

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: UART

#3 Post od ivana96 » Uto Maj 29, 2018 4:44 am

Ne, u Arduinu :)

Korisnikov avatar
DenisHD
Početnik
Postovi: 368
Pridružio se: Sre Jan 04, 2017 11:32 am

Re: UART

#4 Post od DenisHD » Uto Maj 29, 2018 3:04 pm

Auu... vi nesto naorednije programirate... mi u skoli ucimo da isprogramiramo da blinka dioda ili da se ukljuci na pritisak tastera, sa najobičnijim komandama za arduino ide... Mene pošto zanima više od toga, "kopam" po netu i istrazujem na koje nacine moze da se isprogramira arduino... Ovo prvi put vidim... ovakav izgled koda... Ja najvise sto sam probao da isprogramiram jeste da promenim pwm frekvenciju i to preko ove komande: TCCR2B = TCCR2B & 0b11111000 | 0x01;
Nasao sam opsirne datasitove o ovome, ali samo teorija na engleskom, tako da polovinu toga (a i vise nego polovinu) nisam skontao... :think: :doh: :lol:

ivana96
Početnik
Postovi: 11
Pridružio se: Čet Maj 24, 2018 4:41 pm

Re: UART

#5 Post od ivana96 » Uto Maj 29, 2018 6:17 pm

DenisHD napisao:
Uto Maj 29, 2018 3:04 pm
Auu... vi nesto naorednije programirate... mi u skoli ucimo da isprogramiramo da blinka dioda ili da se ukljuci na pritisak tastera, sa najobičnijim komandama za arduino ide... Mene pošto zanima više od toga, "kopam" po netu i istrazujem na koje nacine moze da se isprogramira arduino... Ovo prvi put vidim... ovakav izgled koda... Ja najvise sto sam probao da isprogramiram jeste da promenim pwm frekvenciju i to preko ove komande: TCCR2B = TCCR2B & 0b11111000 | 0x01;
Nasao sam opsirne datasitove o ovome, ali samo teorija na engleskom, tako da polovinu toga (a i vise nego polovinu) nisam skontao... :think: :doh: :lol:
2.godina faxa smo :D

Korisnikov avatar
DenisHD
Početnik
Postovi: 368
Pridružio se: Sre Jan 04, 2017 11:32 am

Re: UART

#6 Post od DenisHD » Uto Maj 29, 2018 9:36 pm

Koji smer ides?

Odgovori

Ko je OnLine

Korisnika u ovom forumu: Nema registrovanih korisnika i 4 gosta