Programování AT89S52 v Codevision AVR

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 02:00

Programování AT89S52 v Codevision AVR

#1 Příspěvek od MirrA1 »

Neví náhodou někdo jestli v prostředí Codevision AVR lze programovat i obvod AT89S52 ? Při nastavování parametrů projektu není tento procesor v menu...

Díky za odpovědi.

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#2 Příspěvek od WLAB »

Neni to AVRko, ale 51tka. Jinac CodeVision neni nic moc, ale pouzivam ho, zatim.
de omnibus dubitandum est

Uživatelský avatar
klikis111
Příspěvky: 11
Registrován: 24 zář 2010, 02:00

#3 Příspěvek od klikis111 »

Jojo, x51 v Codevisionu asi nedáš.

Jinak co je na něm špatného? Ten wizard na založení projektu je úžasnej a spousta knihoven k nejpoužívanějším periferiím hned při instalaci potěší.

Abych řekl pravdu, začal jsem s ním a shánět knihovny do AVR studia se mi už nějak nechce ...

Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 02:00

#4 Příspěvek od MirrA1 »

S programováním atmelů v C začínám, takže se v tom zatím nevyznám :-)

Zkoušel jsem ten Keil, ale hrozně mi tam vadí, že tam nejde udělat přesný zpoždění - krom použití časovače a nebo assembleru.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#5 Příspěvek od Andrea »

MirrA1 píše:S programováním AVR v C začínám
To začínáš dost divně, možná by se k tomu programování AVR hodilo víc nějaké AVR.

Uživatelský avatar
klikis111
Příspěvky: 11
Registrován: 24 zář 2010, 02:00

#6 Příspěvek od klikis111 »

Jo, v Codevision includuješ knihovnu Delay.h a napíšeš jen delay_ms nebo delay_us. Ovšem v tu chvíli procesor zahálí a nelze ho využít, takže je lepší použít ten Timer nebo nějaké počítadlo (pokud nepotřebuješ přílišnou přesnost, tak třeba počítat průběhy programu) a nezabereš si procesor jen na čekání.

Ale to čekání je v Codevision potřeba pro další knihovny, třeba pro inicializaci LCD displeje atd ...

Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 02:00

#7 Příspěvek od MirrA1 »

No právě! Z assembleru a PICů jsem zvyklej nepoužívat pro krátký časy(us,ms) časovač, ale jen vložit zpoždění. No a tady se takhle dělat nedá...


Andrea: s tím AVR jsem se upsal :-)

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#8 Příspěvek od Andrea »

MirrA1 píše:Andrea: s tím AVR jsem se upsal :-)
V názvu vlákna?
A co teda programuješ, atmel není žádný procesor, Atmel je výrobce.

Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 02:00

#9 Příspěvek od MirrA1 »

Kde jsem se v názvu vlákna upsal? "Codevision AVR" je název prostředí...
Když mám název knihy "Práce s mikrokontroléry atmel" - tak to je taky dle tebe špatně?


PS: tady má někdo na večer rejpavou...

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#10 Příspěvek od Andrea »

MirrA1 píše:Když mám název knihy "Práce s mikrokontroléry atmel" - tak to je taky dle tebe špatně?
Samozřejmě, že to je špatně, vůbec to neříká, o jakých procesorech že ta kniha je. Nebo je snad o všech procesorech co Atmel vyrábí?

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#11 Příspěvek od WLAB »

Wizard neni spatnej, ale nechapu proc tu inicializaci nableje do mainu a ne do nejake zvlastni funkce.
Krom to, az si napises na periferie, co pouzivas, driver/knihovnu, nebude ten wizard krom IO linek temer potreba.
Knihoven tam zas takova paleta neni a, uprimne receno, nevzpominam si, ze bych z toho pouzil nekdy jine nez standarni ceckovske. Vsechno ostatni jsem vzdy dopsal.

Preklady do asm jsou nekde dost hrozne, kdyz clovek honi cas, musi se koukat, co z toho vypadlo.

Prelozit:

register unsigned char c;
register unsigned int i;
....
....
c=i>>8;
....
....

tak, ze se zavola shiftovaci funkce s parametrem 8.... hmm. 8O . Mozna uz to ted vylepsili...
ale alespon to funguje na rozdil od:

#pragma warn-
if(neco)
#pragma warn+
{ neco....

pragmy to takhle kupodivu skousne, ale if() to prelozi jako by za nim byl strednik :(

nebo mame:

typedef struct
{
unsigned char sec;
unsigned char min;
unsigned char hr;
unsigned char day;
unsigned char mon;
unsigned char dow;
unsigned char year;
} time_t;

#define RTC_size 7
char RTC[RTC_size]={0x00,0x49,0x17,0x30,0x10,0x06,0x10};

time_t rtc_backup;

a

*( (time_t*) (RTC) )=rtc_backup;

to prelozi tak, ze to presune jeden bajt....

Pak se v tom paradne programuje.... :cry:
de omnibus dubitandum est

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“