|
|
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 2024 04 28, 05:50. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » USART mega328p
|
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 2 iš 2 Pereiti prie Atgal 1, 2 |
|
|
USART mega328p |
Parašytas: 2016 10 04, 14:34 |
|
|
|
R2D2 rašo: |
Todėl reikia nusilenkti kompiliatorių kūrėjams, kad sugeba padaryti tokius stebuklus. |
Na tikrai. Dabar masyvu ilgius aprasineja tik durniai, o malloc() jau senai isejes i pensija |
|
|
|
|
|
|
Re: USART mega328p |
Parašytas: 2016 10 04, 20:48 |
|
|
|
Socrates rašo: |
Digix rašo: |
char text[] (arba text*) = " kazkoks tekstas"; |
Butent kaip tu cia dabar aprasei, tai kompiliatorius ir supras kaip zinomo ilgio masyva. O kai nurodai tik pointeri, tai ten belekas gali nutikt.
O siaip nurodzius char data[25] kompiliatoriui butu viskas aisku. |
jei nurodysi char data[25] tada jau reikes rasyti kitaip
char data[25]= {'k','a','z','k','o','k','s'....'\0'}
jei tu C kalboje parasai " kazkoks tekstas" tai tokiu budu automatiskai tas tekstas patalpinamas i kazkokia atminties vieta kaip masyvas su nuliu pabaigoje ir grazinamas pointeris i ta masyva.
todel
char data[25]=" kazkoks tekstas";
negali veikti is principo, nes tu negali masyvo prilyginti pointeriui.
tokiu ateveju reikes naudoti memcpy asba strcpy |
|
|
|
|
|
|
USART mega328p |
Parašytas: 2016 10 04, 21:28 |
|
|
|
Socrates rašo: |
R2D2 rašo: |
Todėl reikia nusilenkti kompiliatorių kūrėjams, kad sugeba padaryti tokius stebuklus. |
Na tikrai. Dabar masyvu ilgius aprasineja tik durniai, o malloc() jau senai isejes i pensija |
Kam reikalingas tas ne į temą offtopic`as? Patarinėkim apie C ir mikrovaldiklius, geriau. |
|
|
|
|
|
Re: USART mega328p |
Parašytas: 2016 10 04, 21:29 |
|
|
|
Digix rašo: |
todel
char data[25]=" kazkoks tekstas";
negali veikti is principo, nes tu negali masyvo prilyginti pointeriui.
tokiu ateveju reikes naudoti memcpy asba strcpy |
ir kodėl negali? |
|
|
|
|
|
Re: USART mega328p |
Parašytas: 2016 10 04, 22:16 |
|
|
|
R2D2 rašo: |
Digix rašo: |
todel
char data[25]=" kazkoks tekstas";
negali veikti is principo, nes tu negali masyvo prilyginti pointeriui.
tokiu ateveju reikes naudoti memcpy asba strcpy |
ir kodėl negali? |
manau ten buvo parasyta kodel. |
|
|
|
|
|
Re: USART mega328p |
Parašytas: 2016 10 04, 22:25 |
|
|
|
Digix rašo: |
manau ten buvo parasyta kodel. |
Manau ten buvo negerai parasyta.
char data[25]="kazkoks tekstas";
char *fakinpointer = data;
Ka tik isbandziau, veikia puikiai, ir dargi nulis gale |
|
|
|
|
|
|
USART mega328p |
Parašytas: 2016 10 05, 19:18 |
|
|
|
Na vieną dieną neatėjau, tai žiūriu čia diskucija užvirus. Na nežinau kodėl man neveikia ant atmega328p valdiklio. Padariau kodą ant atmegos8 viskas veikia gerai. Parsisiunčiau AVR studio 4.18. Na pradėjo veikti tas kodas, tačiau dabar problema kita atsirado. Kartais išdrasko siunčiamą eilutę. Padariau print screena terminal V1.93b. Na į kompą iš atmegos328p siunčiu per FT232RL. Tai va, kaip kartais spausdinamą eilutę, galite pamatyti čia
http://talpix.lt/u/K8eXSku
Tai gal kas nors galit šį kodą sukompiliuoti į hex failą ir man atsiųsti. Gal mano kompiliatorius grybauja.
Kodas:
Kodas: |
#include <avr/io.h>
#include <avr/delay.h>
#define FOSC 8000000
#define BAUD 9600
#define MYUBRR FOSC/16/(BAUD-1)
void USART_Init()
{
UBRR0H = (MYUBRR>>8);
UBRR0L = MYUBRR;
UCSR0B = (1<<TXEN0);
UCSR0C = (0<<USBS0)|(3<<UCSZ00);
}
simboliai( char m)
{
while (!(UCSR0A & (1<<UDRE0)));
UDR0 = m;
}
void eilute(unsigned char *data)
{
while(*data!=0)
{
while (!(UCSR0A & (1<<UDRE0)));
UDR0 = *data;
data++;
}
}
int main(void)
{
USART_Init();
while(1)
{
eilute("gpio.write(4,gpio.LOW)");
simboliai(13);
_delay_ms(1000);
eilute("gpio.write(4,gpio.HIGH)");
simboliai(13);
_delay_ms(1000);
}
}
|
|
|
_________________ Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku. |
|
|
|
|
|
USART mega328p |
Parašytas: 2016 10 05, 19:29 |
|
|
|
ne, nieko daryti nereikia. Pasileidau ant PUTTY programos, tai ne vieną kartą nesudraskę eilutės |
|
_________________ Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku. |
|
|
|
|
Re: USART mega328p |
Parašytas: 2016 10 06, 03:43 |
|
|
|
Badas rašo: |
Digix rašo: |
manau ten buvo parasyta kodel. |
Manau ten buvo negerai parasyta.
char data[25]="kazkoks tekstas";
char *fakinpointer = data;
Ka tik isbandziau, veikia puikiai, ir dargi nulis gale |
pas tave nebus kartais C++ kompiliatorius? nes jis tokius dalykus daznai automatiskai sutvarko naudodamas "operator overloading" funkcija. |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS 22 Tractors
Farming Simulator 19 Mods,
FS 22 Maps,
FS22 Mods |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS22 Trucks |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
Paskola internetu
Vartojimo paskola,
paskola automobiliui,
paskola būsto remontui |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS22 Mods
FS22 Harvesters,
FS22 Tractors Mods,
FS22 Maps Mods |
|
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat |
|
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting |
|
|
|