AVR ja ohjelmointikaapeli

Seuraa 
Viestejä29006
Liittynyt30.4.2005

Nyt on tultu siihen pisteeseen että viimeinkin haluan rinnakkaisportin käytöstä eroon. Kirjoitan tänne ennen kuin alan ihmettelemään vaihtoehtoja enempää. Nyt kun oon käyttänyt aaveeärrien ohjelmoinnissa vaan rinnakkaisporttia ja Dontronics DT006 tyyppistä kaapelia niin minkähänlainen adapteri pitäis askarrella että sais kärytettyä piirin sarjaportin tai usbin kautta. AVRISP mkII prommeri on kallis ja stk500 on mulle outo. Pitänee opiskella.

Ellei teillä oo hyvää valmista ajatusta...

Sivut

Kommentit (65)

Vierailija

AVRISPmkII maksaa n. 30€, mikä on varsin kannattava sijoitus helppokäyttöisyyttä ajatellen. AVR-studio tukee suoraan tuota ISPmkII:sta, jolloin esim. fuse-tavujen asettaminen on helppoa. Open source ohjelmointilaitteet ovat hankalampia, mutta jos on oltava nuukapihi niin halvoista paras on USBasp, joita saa ebaysta alkaen kympillä.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005

Atmelilla on se stk500 evaluation boardi. Miten siinä on tehty se homma? Sen kanssa mun käsittääkseni vetästään vaan sarjakaapeli tiatsikan perään ilman välipalikoita.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005

Lievästi samaan liittyen. Miksi codevisionin kääntäjä valittaa kun laittaa mikrosekuntikokoiseksi delayn arvoksi jonkun muuttujan? Numeerinen arvo kelpaa mutta ei vaikkapa a. Aan arvo siis määritellään jossain muualla. Millisekunnit käy.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
CE-hyväksytty
Lievästi samaan liittyen. Miksi codevisionin kääntäjä valittaa kun laittaa mikrosekuntikokoiseksi delayn arvoksi jonkun muuttujan? Numeerinen arvo kelpaa mutta ei vaikkapa a. Aan arvo siis määritellään jossain muualla. Millisekunnit käy.

Eli siis tämä kelpaa:

[code:218va2av]void main(void)
{

unsigned int a;

PORTB=0x03;
DDRB=0x04;

a=1500;

while (1)
{
PORTB.2=1;
delay_ms(a);
PORTB.2=0;
delay_ms(20000-a);

if(!PINB.0)
a=a-100;
delay_ms(5);

if(a<=500)
a=500;

if(!PINB.1)
a=a+100;
delay_ms(5);

if(a>=2500)
a=2500;
}
}[/code:218va2av]

Mutta tämä ei.

[code:218va2av]void main(void)
{

unsigned int a;

PORTB=0x03;
DDRB=0x04;

a=1500;

while (1)
{
PORTB.2=1;
delay_us(a);
PORTB.2=0;
delay_us(20000-a);

if(!PINB.0)
a=a-100;
delay_ms(5);

if(a<=500)
a=500;

if(!PINB.1)
a=a+100;
delay_ms(5);

if(a>=2500)
a=2500;
}
}[/code:218va2av]
Valitus on tämmönen:
Error: C:\Program Files\cvavreval\bin\omat\servo_controller.c(42): constant integral expression required

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
Horizontal
Tuolta löytyy jonkinlainen vastaus ja ainakin yksi tapa tulla toimeen ominaisuuden kanssa:

daley_us or delay_ms!?


Kas jee. Jotain tollasta mä epäilinkin mutta en keksiny miten haltsais mokoman. Muuta kun että kiteen kanssa kun valehtelee niin saa ainakin vehkeestä pihalle muuta kuin vehje luulee.

Neutroni
Seuraa 
Viestejä26854
Liittynyt16.3.2005

Miten olisi tämä? Minä tinasin tuollaisen. Kyllä se pelaa, mutta sen saaminen toimintaan suoraan AVR-studion kanssa vaatisi massivista kikkailua. Itse käytän AVRDUDEa Studion ja tuon himmelin välillä.

Toki se AVR:n oma vastaava olisi ollut fiksumpi, mutta se olisi pitänyt tilata jostain hevon kuusesta ja vienyt viikkokausia.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
Neutroni
Miten olisi tämä? Minä tinasin tuollaisen. Kyllä se pelaa, mutta sen saaminen toimintaan suoraan AVR-studion kanssa vaatisi massivista kikkailua. Itse käytän AVRDUDEa Studion ja tuon himmelin välillä.

Toki se AVR:n oma vastaava olisi ollut fiksumpi, mutta se olisi pitänyt tilata jostain hevon kuusesta ja vienyt viikkokausia.


Joo tarttee tutustua. Tumpelouteni tuntien en oo varma saanko toimiin.

Vierailija

Jos sitä viivettä ei tarvi vaihtaa ajon aikana, vaan se on siellä alussa annettu vain kätevyyden vuoksi, niin se kannattaa määritellä vain kääntäjälle ohjelman alussa:
[code:3ono0l05]
#DEFINE nimi arvo
[/code:3ono0l05]
Samalla tavalla voi tehdä myös makroja, jotka kääntäjä sitten korvaa oikealla koodilla. Itse käytän esimerkiksi seuraavia:
[code:3ono0l05]
#define sbi(var, mask) ((var) |= (uint8_t)(1 << mask)) //set bit
#define cbi(var, mask) ((var) &= (uint8_t)~(1 << mask)) //clear bit
[/code:3ono0l05]
Näitä käytetään koodissa vaikkapa:
[code:3ono0l05]
#DEFINE LED 1

int main(void);
{
sbi(PORTB,LED); //Ledilamppu PB1:ssä syttyy
}
[/code:3ono0l05]

Tällä tyylillä esimerkiksi arduinossa on piilotettu paljon allaolevaa logiikkaa yksinkertaisempien palikkamakrojen taakse ettei aloittelijoilla mene sormi suuhun.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
CE-hyväksytty
Neutroni
Miten olisi tämä? Minä tinasin tuollaisen. Kyllä se pelaa, mutta sen saaminen toimintaan suoraan AVR-studion kanssa vaatisi massivista kikkailua. Itse käytän AVRDUDEa Studion ja tuon himmelin välillä.

Toki se AVR:n oma vastaava olisi ollut fiksumpi, mutta se olisi pitänyt tilata jostain hevon kuusesta ja vienyt viikkokausia.


Joo tarttee tutustua. Tumpelouteni tuntien en oo varma saanko toimiin.

Onko tässtä jotain hyötyä? Ottaa tosta d-liittimestä sitten ne piuhat mitä tarttee avr:lle.

Supported Devices:

Any Printer with parallel interface, Scanners, LapLink, Zip Drive, Tape Drive, LS-120 Drive, CD-R/RW, EPROM Programmer, Intelligent UPS, Plotter, Bank Passbook Printer, CF/SM/MMC/PCMCIA Reader and etc.




http://www.halvathinnat.fi/magento/tulostus/tulostimet/usb-rinnakkaisada...

Vierailija

Itsellä on AVR-ohjelmointilaitteen käytössä tämä:
http://shop.myavr.com/index.php?sp=article.sp.php&artID=200006
Mukavan pieni, tietokoneessa mene suoraan USB:iin ja piirilevyssä ISP6 liittimeen. Toimii ainakin AVRStudio 4:sen kanssa suoraan. Pystyy antamaan piirilevylle joko 5v tai 3v käyttöjännitteen.

Arduino-laudat on erittäin hyvä vaihtoehto varsinkin, jos on vasta aloittelemassa mikrokontrollereiden kanssa, koska niissä ohjelmointi tapahtuu käsittääkseni arduinon omalla ohjelmalla ja valmiita kirjastoja käyttäen. Toimivia ohjelmia saa siis nopeasti kasaan. Itselle se on kyllä suurin syy miksi en ole hankkinut Arduinoja, sillä haluan oppia mitä kontrollerin pellin alla tapahtuu ja silloin ei myöskään ole rajoitettuna kirjaston tarjoamiin toimintoihin.

Hieman ohi aiheesta, mutta jos jotain kiinnostaa kokeilla ARM-kehitystä, niin nyt on tarjolla lauta joka ei ole ainakaan hinnan kiroissa.
https://www.elfaelektroniikka.fi/elfa3~fi_fi/elfa/init.do?item=73-872-39...

Tuli tuollainen itse tilailtua. Vielä ei ole kyllä juuri ledin vilkutusta monimutkaisempaa kerinnyt tekemään.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
Sampe
Itsellä on AVR-ohjelmointilaitteen käytössä tämä:
http://shop.myavr.com/index.php?sp=article.sp.php&artID=200006
Mukavan pieni, tietokoneessa mene suoraan USB:iin ja piirilevyssä ISP6 liittimeen. Toimii ainakin AVRStudio 4:sen kanssa suoraan. Pystyy antamaan piirilevylle joko 5v tai 3v käyttöjännitteen.

Joo toi vois olla hyvä. Toimii näköjään codevisioninkin kanssa. Myydäänköhän noita muualla?

Sampe
Arduino-laudat on erittäin hyvä vaihtoehto varsinkin, jos on vasta aloittelemassa mikrokontrollereiden kanssa, koska niissä ohjelmointi tapahtuu käsittääkseni arduinon omalla ohjelmalla ja valmiita kirjastoja käyttäen. Toimivia ohjelmia saa siis nopeasti kasaan. Itselle se on kyllä suurin syy miksi en ole hankkinut Arduinoja, sillä haluan oppia mitä kontrollerin pellin alla tapahtuu ja silloin ei myöskään ole rajoitettuna kirjaston tarjoamiin toimintoihin.

Mulla menee noi kontollerien toiminnot kyllä monilta osin yli hilseen mutta kaikkee en haluain valmiiks pureskeltuna.

Vierailija

En ole nähnyt myAVR shopin tuotteita myynnissä muualla, mutta ainakaan omalla kohdalla tilauksen kanssa ei ollut mitään ongelmia. Tilasin tuon ohjelmointilaitteen, muutamia mikrokontrollereita ja jotain pikkusälää reilu vuosi sitten.

Kyllähän noissa nykyisissä kontrollereissa alkaa olemaan samoissa kuorissa paljon toiminnallisuutta sekä oheislaitteita ja datalehdetkin on melkoisia järkäleitä. Varsinkin alussa kyllä tuntuu melko massiiviselta urakalta niiden hanskaaminen.

Omasta mielestä hyvä järjestys lähteä hanskaamaan uutta kontrolleria on seuraava:
- General purpose IO (ledien vilkuttelu, kytkinten luku ym)
- Sarjaportti pollaamalla
(- Timerit pollaamalla)
- Keskeytysten periaate
- Sarjaportti keskeytyksillä
- Timerit keskeytyksillä
- Muita ominaisuuksia tarpeen mukaan: SPI, I2C, Watchdog, Ulkoiset keskeytykset, AD-muunnos, jne...

Varsinkin ton sarjaportin käyttöä suosittelen jo melko varhaisessa vaiheessa, niin voi lähettää tietokoneelle omia debug viestejä. Kannattaa vaan muistaa, että mikrokontrolleria ei voi yleensä suoraan liittää sarjaporttiin, vaan tarvitaan väliin USB-SERIAL tai RS232-SERIAL muunnospiiri.

Sivut

Uusimmat

Suosituimmat