|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 01 30, 05:39. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » Reikia pagalbos su UART
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 3 Pereiti prie 1, 2, 3 Toliau |
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 15, 18:36 |
|
|
|
Si programele:
#include "io2313.h"
void main()
{
UBRR=143; // Nustatome 4800 bps perdavimo greitį 11 MHz rezonatoriui
//Įjungiame perdavimo pertraukt į 1-> TXCIE
//Įjungiame perdavimo pertrauktį per UART kai UDR tuščias
//Išjungiame priėmimą 0-> RXEN
//Įjungiame perdavimą 1-> TXEN
UCR=(1<<TXCIE)|(1<<UDRIE)|(0<<RXEN)|(1<<TXEN);
SREG =128;// Įjungiame globalias pertrauktis
while(1) // Ažminas ciklas
{}
}
#pragma vector=UART_UDRE_vect //Pertraukties procedūra kai UDR=0
__interrupt void UDR_tuscias()
{
UDR=0x35; // Siunčiam ASCII simbolį, kuris atitinka skaičių 5
}
Siuncia UART'u 1 simboli niekaip naiseina padaryti kad siustu simboliu seka tam tikra.
Programuoju su IAR, esu zalias pakankamai. |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 16, 08:52 |
|
|
|
Aciu, meginsiu.
O kaip tuos simbolius paeiliui patalpinti i UDR?
UDR=0x35,0x65,....
ar
UDR=0x35;
UDR=0x65;
... |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 16, 12:22 |
|
|
|
pirma ar tu moki C kalba?
to amzinojo ciklo nuimti nereikia..
jei nori nusiusti kelis simbolus tai ko gero juos turetum tureti masyve, o tai gal po viena siuntinesi?
UDR=0x35; // Siunčiam ASCII simbolį, kuris atitinka skaičių 5
sita reikia taisyti taip
UDR=str[x];
x++;
ir toliau kas nors kad sektu kiek simboliu liko isr sustotu kai reikia. |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 16, 13:30 |
|
|
|
Ne velnio as tos c nemoku
Jauciu suklydau kad pasirinkau ja,
reikejo asembleriu kazka gamint, su juo man gerokai lengviau
Bet bus proga c ismokt, niekada nevelu.
Del to masyvo jau ir pats kazka susigaudziau.
Dekui uz parama |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 16, 19:22 |
|
|
|
Digix rašo: |
asambleriu 5 kartus sunkiau.
C sakyciau labai lengva kalba |
Pagal kokia cia formule ta sunkuma suskaiciavai? Jei nemoki tai dar nereiskia, kad sunkesne... |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2007 04 16, 20:34 |
|
|
|
kodel jau nemoku?
realiai sunkumas asambleriu didesnis 100 kartu. skaiciuojama taip
laikas parasyti programai asambleriu / is laiko naudojant C kalba.
asambleriu rasiau menesi(ant pic), C kalba valanda (ant avr perdariau), skirtumas yra.
labai sudetingos programos asambleriu isvis nepadarysi, o kai dar apie paietimus pagalvoji tai nera ka ir kalbeti.
asambleri beje moketi reikia, juo rasomos kritines funkcijos kur labai svarbu gretis ir ciklu skaicius bet tas buna retai rekalinga.
daugiau asamblerio reikia ivertinant C kompiliatoriaus darba daznai labai svarbu paziureti kokiu nesamoniu jis ten pridare. |
|
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 13, 16:19 |
|
|
|
Kodas: |
#include "iom8.h"
void main()
{
UBRRL=25;
UCSRB=(1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(0<<TXEN);
SREG =128
while(1)
{}
}
#pragma vector = USART_RXC_vect
__interrupt void UDR_RXC()
{
PORTB=UDR
} |
pasirasiau tokia programa kad is COM porto gauti 8 ledu atitinkamas uzsidegimo kombinacijas siunciant koki simboli is PC...viskas lyg gerai bet ledai vos sviecia, pamatavus isejima rodo 1.6V, kame problema? gal jie labai greit mirksi del kazkokiu programos spragu ar dar kazkas? |
|
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 17, 17:04 |
|
|
|
DDR`o neįjungei
pataisymas būtų toks:
Kodas: |
#include "iom8.h"
void main()
{
DDRB=255; // reikia 5jungti DDR`ą, tik tada tavo portas turės ne pull-up`ą o normalų išėjimą.
UBRRL=25;
UCSRB=(1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(0<<TXEN);
SREG =128
while(1)
{}
}
#pragma vector = USART_RXC_vect
__interrupt void UDR_RXC()
{
PORTB=UDR
} |
|
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux |
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 30, 12:34 |
|
|
|
"realiai sunkumas asambleriu didesnis 100 kartu" kurioje vietoje jis 100 kartu sunkesnis? |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 30, 12:37 |
|
|
|
centronic rašo: |
"realiai sunkumas asambleriu didesnis 100 kartu" kurioje vietoje jis 100 kartu sunkesnis? |
Priklauso nuo programos. Jei kokie skaičiavimai, masyvai, dideli skaičiai tai su asmu tikrai daug sunkiau. |
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 30, 14:00 |
|
|
|
centronic rašo: |
ir kokius tu didziausius skaicius naudoji? |
Ne vien skaičių dydije esmė. Šiap, naudojant ASM reikia gerai išmanyti procesoriaus architektūra ir t.t., o tai apsunkina darbą. Žinoma, rašant asm, programa beveik visada gaunasi optimalesnė. |
|
|
|
|
|
|
Reikia pagalbos su UART |
Parašytas: 2008 04 30, 15:26 |
|
|
|
centronic rašo: |
"realiai sunkumas asambleriu didesnis 100 kartu" kurioje vietoje jis 100 kartu sunkesnis? |
vo parasyk asambleriu TCPIP steka tai pamatysim koks genijus esi
darant programa ja reikia daznai keisti, pvz ilga laika koks nors kintamasis buvo paprastas char baitas, sumanysi kad tau truksta pakeisi i int ar net float.
paskui kitas dalykas kad C kalba programos daug aiskesnes, ten susikuri milionus funkciju kiekvienam darbui ir naudoji jas
asambleriu manau greitai pasimestum tarp kokiu 100 funkciju.
Citata: |
Šiap, naudojant ASM reikia gerai išmanyti procesoriaus architektūra ir t.t., o tai apsunkina darbą. |
tas tai niekai lyginant su kitom problemom
Citata: |
Žinoma, rašant asm, programa beveik visada gaunasi optimalesnė. |
nebutinai. jei programa didele tai garantuoju kad nesugebesi tinkamai suvaldyti keleto simtu kintamuju paprastai rasant asambleriu beveik visikintamieji globalus, nes asambleris neturi funkciju, ir negalima priskirti to paties atminties adreso keleta kartu skirtingais pavadinimais. jei ta ir padarysi tai pats susimaisysi kuris kintamasis kam skirtas.
taip kad programa tikrai nesigaus mazesne nei C kalba.
kitas dalykas kad asambleris nemoka ismesti jauk nenaudojamu funkciju.
nes rasant didele programa prisirenka daug visokiu funkciju skirtu debuginimui kuriu kaip ir nereikia galutineje versijoje. |
|
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|