www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Programiranje Atmela v AVR studio 4
Pojdi na stran 1, 2, 3, 4  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Čet Feb 02, 2012 4:40 pm    Naslov sporočila:  Programiranje Atmela v AVR studio 4 Odgovori s citatom

Pozdravljeni

Zanima me sledeče, kje ter kako se nastavljajo I/O pini v tem programskem okolju, namreč meni še ni uspelo. Probaval sem v I/O view sam nekak ne deluje. Ali mogoče morem to ročno vpisovat v I/O.h? Rad bi nastavil za TOSC1 ter TOSC2, ter še nekaj ostalih. Uporabljam čip ATMEGA 8535 16PU. Programator je AVRISP mk2. Prosim če bi mi lahko kdo to malo razložil ker meni niso najbolj jasne.
Hvala vam za odgovore.
LP Think
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1161
Aktiv.: 4.90

PrispevekObjavljeno: Čet Feb 02, 2012 5:18 pm    Naslov sporočila:   Odgovori s citatom

Poglej tole http://maxembedded.wordpress.com/2011/06/12/using-avr-studio-5/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Čet Feb 02, 2012 7:02 pm    Naslov sporočila:   Odgovori s citatom

A ti to misliš, da bi kar poklikal kaj bi rad in da deluje? AVR studio ti tega ne omogoča. Malce si poglej datasheet in ustrezne registre. Ali pa poizkusiš naslednjo zvijačo (katere se iz lenobe poslužujem tudi sam). Na PCju imam inštaliran še Codevisionov CVAVR, njihov wizzard pa uporabljam zgolj za nastavljanje registrov.

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Čet Feb 02, 2012 7:05 pm    Naslov sporočila:   Odgovori s citatom

vbistvu je problem pri tem da sem jaz začetnik na tem področju. tako da nevem kako se nastavlja. gledal sem po netu ter ugotovil da se morejo vsi registri vpisovat v kodi....a mi lahko kda kdo kaki primer vpisovanja registrov?
hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1031
Aktiv.: 4.39

PrispevekObjavljeno: Čet Feb 02, 2012 8:14 pm    Naslov sporočila:   Odgovori s citatom

Imena registrov so že v knjižnicah, tako da ti ni nujno potrebno vpisovati hex ali binarnih števil, če si to mislil.
Prej moraš samo ustrezne knjižnice vključiti, npr če želiš uporabiti interrupte in njihove registre, moraš vključiti interrupts.h.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Čet Feb 02, 2012 8:20 pm    Naslov sporočila:   Odgovori s citatom

ja to sem ugotovil za interrupts, kako pa je z oscilatorjem ter ADC vhodi. Trenutno mi ta oscilator dela sive lase... drugače pa vsem hvala za pomoč ter nasvete
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1031
Aktiv.: 4.39

PrispevekObjavljeno: Čet Feb 02, 2012 8:32 pm    Naslov sporočila:   Odgovori s citatom

Nastavitev oscilatorja narediš na začetku takole: #define F_CPU xxxxxx. x-i predstavljajo frekvenco v Hz. To verjetno rabiš ker uporabljaš delay funkcijo ?
Za ADC- je pa tako, da si na začetku nastaviš registre kot želiš da delujejo. Seveda moraš prej v datasheetu pogledati kaj kateri register predstavlja (v datasheetu je zate pomemben le register summary pri vsakem poglavju o določeni periferiji). Tu se ti verjetno ustavi, in za te nastavitve iščeš nekakšen wizard ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 02, 2012 11:23 pm    Naslov sporočila:   Odgovori s citatom

Če programiraš v C (winavr):

V "Projects" -> "Configuration options" -> "General" nastavi "device" na tvoj uC.
V "Projects" -> "Configuration options" -> "Include directories" dodaj [pot do winavr]\avr\include\avr

Na začetku napiši #include <io.h>
Do registrov nato dostopaš preko njihovih imen (večinoma enaka, kot v *.PDF).

npr:
DDRC = [vrednost];
PORTC = [vrednost];

Citiram:
Rad bi nastavil za TOSC1 ter TOSC2, ter še nekaj ostalih.

Če nisem kaj spregledal, register TOSC1 in TOSC2 na ATMEGA8535 ne obstaja.
Pina PC7 in PC6, ki imata alternativno funkcijo prilopa oscilatorja, sta 7 in 6 bita porta C.

Stanje PC7 lahko prebereš z:
spremenljivka= PINC & (1<<7);

PC7 lahko definiraš kot izhod z
DDRC |= (1<<7);

PC7 lahko postaviš na '1'
PORTC |= (1<<7);

PC7 lahko postaviš na '0'
PORTC &= ~(1<<7);

[edit]
Če bi na TOSC1 in TOSC2 priklopil kristal, moraš izbrati vir takta za TIMER 1.
glej register Timer/Counter Control Register B (TCCR1B) in poglavje 16bit Timer Counter1 -> Timer/Counter Clock Sources.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Pet Feb 03, 2012 1:27 pm    Naslov sporočila:   Odgovori s citatom

Hvala int47, ta prispevek mi je zelo pomagal sam ne razumem kako to mislite da morem zbrat vir takta ker jaz sem zdej aktiviral oscilator na PC7 ter PC6 sam nisem razumel tega.....
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

PrispevekObjavljeno: Pet Feb 03, 2012 2:46 pm    Naslov sporočila:   Odgovori s citatom

Nekatere stvari (recimo vir takta procesorja, hitrost internega takta procesorja,...) najlaže sprogramiraš s pomočjo programatorja. To so tako imenovani FUSE biti (varovalke). Do njih imaš pregled in dostop, ko se s programatorjem v AVRstudio povežeš na mikro. To tudi naredi (ampak spreminjaj za sedaj ne še nič!!!!) in si oglej, katere stvari se lahko tu spreminjajo.

Veliko večino registrov pa spreminjaš s svojim programom. Na začetku programa (header) običajno določiš, kateri pini so vhodi in izhodi, kateri pullup upori so vključeni... Velikokrat tu v headerju vklapljaš in nastavljaš mikrotovo periferijo (ADC pretvornike, timerje, USART komunikacijo,...).

Seveda se te stvari (registri) iz drugega odstavka lahko spremenijo tudi med izvajanjem programa. Prav tako se iz podobnih registrov brez problema bere in vanje piše v programu.

Ne moreš pa med izvajanjem programa mikrotu recimo naenkrat reči, naj si nastavi drugo hitrost delovanja -uro. (opomba: čeprav tega ne trdim, samo poizkušal še nisem Think ).. Tem nastavitvam pa so namenjeni fuse biti iz prvega poglavja.

Poišči še kak tutorial na netu in zraven malce poglej v mikrov datasheet Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Sob Feb 04, 2012 4:31 pm    Naslov sporočila:   Odgovori s citatom

Timer lahko deluje v različnih režimih in lahko deluje z različnimi izvori takta.
Ob inicializaciji timerja je potrebno določiti kako in kaj (v registre vpisati ustrezne vrednosti).

jkrivec je napisal/a:
...ker jaz sem zdej aktiviral oscilator na PC7 ter PC6 sam nisem razumel tega.....

Če deluje, potem je verjetno OK.
V nasprotnem primeru napiši, kaj si naredil, kar bi rad naredil in kje je težava.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Pon Feb 06, 2012 1:11 pm    Naslov sporočila:   Odgovori s citatom

mene pa zanima kaj je narobe v tej kodi.....


#include <avr/io.h>
#include <util/delay.h>

//#define F_CPU 4000000UL
#define LCD_RS 0
#define LCD_RW 2
#define LCD_E 5
#define LCD_D4 0
#define LCD_D5 1
#define LCD_D6 2
#define LCD_D7 3
#define LDP PORTD
#define LCP PORTC
#define LDDR DDRD //
#define LCDR DDRD //
#define LCD_CLR 0 //DBO:clear display
#define LCD_HOME 2 //DB1:return to home position


int main(void)
{
LCD_init();
LCD_send_command(LCD_CLR);
LCD_send_command(LCD_HOME);
LCD_send_command(0x80+0);
LCD_string("test123 1");
LCD_send_command(0xc0+0);
LCD_string("test123 45");
}

void LCD_send_data(unsigned char ch)
{
LDP = (ch&0xf0);
LCP|=1<<LCD_RS;
LCP|=1<<LCD_E;
_delay_ms(1);
LCP|=0<<LCD_E;
_delay_ms(1);
LDP = ((ch&0x0f)<<4);
LCP|=1<<LCD_RS;
LCP|=1<<LCD_E;
_delay_ms(1);
LCP|=0<<LCD_E;
_delay_ms(1);
}
void LCD_send_command(unsigned char cmd)
{
LDP = (cmd&0x0f);
LCP|=0<<LCD_RS;
LCP|=1<<LCD_E;
_delay_ms(1);
LCP|=0<<LCD_E;
_delay_ms(1);
LDP = ((cmd&0x0f)<<4);
LCP|=0<<LCD_RS;
LCP|=1<<LCD_E;
_delay_ms(1);
LCP|=0<<LCD_E;
_delay_ms(1);

}
void LCD_init(void)
{
_delay_ms(15);
LDP=0x00;
LCP=0x00;
LDDR |=1<<LCD_D7|1<<LCD_D6|1<<LCD_D5|1<<LCD_D4;
LCDR |=1<<LCD_E|1<<LCD_RW|1<<LCD_RS;
LCD_send_command(0x28);
LCD_send_command(0x0c);
LCD_send_command(0x06);
}
void LCD_string(char* str)
{
unsigned char x=0;
while(str[x] !=0)
{
_delay_ms(1);
LCD_send_data(str[x]);
x++;
}
}
void delay_ms5(int ms)
{
for(int i=0;i<ms;i++)
{_delay_ms(1);
}
}

Uporabljam LCD DEM16216SGH ter atmega8535.......
Povezanega pa imam tako
RS---->PD0
R/W---->PD2
E--->PD5
DB4---->PC0
DB5----->PC1
DB6---->PC2
DB7----PC3

hvala za odgovor.. Think
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

PrispevekObjavljeno: Pon Feb 06, 2012 2:48 pm    Naslov sporočila:   Odgovori s citatom

Ker si že tako splošno uganko postavil.... Liar

Kot prvo manjka nekaj v headerju programa. Vsaj nekaj, kar se začne z: #incl Twisted Evil No, mogoče niti ne... d'oh!

Drugače pa postavi vprašanje tako kot je treba, da ga drugi zastopijo!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jkrivec
Član
Član



Pridružen-a: Pon 14 Nov 2011 13:29
Prispevkov: 51
Aktiv.: 0.31
Kraj: Rogaška Slatina

PrispevekObjavljeno: Pon Feb 06, 2012 7:03 pm    Naslov sporočila:   Odgovori s citatom

Težava je v tem da jaz bi rad naredil projekt kjer bi vseboval accelerometer(adxl 212aez) ter lcd prikazovalnik. prikazoval bi pa rad vrednost senzorja oziroma kasneje kolikšen je pospešek oz pojemek(to so določene formule v datasheet od tega senzorja). Žal pa morem priznat da je moje znanje iz tega programiranja bol slabo....zato tukaj sprašujem za nasvete.
Pri zgoraj dodani kodi sem imel v mislih da bi kot sem napisal povezal lcd in atmega8535. Kodo sem napisal, ni mi javilo nobene napake, ampak tudi na lcdu se ni nič prikazalo, namreč prikazovalo bi naj samo string znakov. Namreč jaz bi rad prvo usposobil lcd da funkcionira kot more, ter nato bi dodal še senzor. Zanima me če sem prav določil porte v kodi?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tiger
Član
Član



Pridružen-a: Čet 05 Feb 2004 0:22
Prispevkov: 1161
Aktiv.: 4.90

PrispevekObjavljeno: Pon Feb 06, 2012 9:26 pm    Naslov sporočila:   Odgovori s citatom

Pomoje boš lažje obdelal podatke s tem ali podobnim čipom, ki ima digitalni izhod.
http://www.analog.com/static/imported-files/data_sheets/ADXL312.pdf

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3, 4  Naslednja
Stran 1 od 4

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 496 dni


Powered by phpBB © 2001, 2005 phpBB Group