Fórum témák

» Több friss téma
Fórum » AVR mintaprogramok
 
Témaindító: adamtui_93, idő: Szept 24, 2009
Lapozás: OK   1 / 1
(#) adamtui_93 hozzászólása Szept 24, 2009 /
 
Hali mindenkinek
Ide minden "Példaprogramot" amit ti megcsináltatok és müködött ide tegyétek fel mert kb 2 perc mig kimásolod pl avr studióból a projektet de lehet valakitöl több napi szenvedést és egy halom felesleges kérdéstöl kiméltél meg.
(#) adamtui_93 hozzászólása Szept 24, 2009 /
 
A leirás abból állna hogy:
1. Mire jó ( mit tud )
2. milyen AVR-t programoztál
3. Milyen programozóval
4. Milyen programmal
5. egyéb kiegészitések ha szükséges
(#) balint1993 válasza adamtui_93 hozzászólására (») Szept 24, 2009 /
 
Szia!
Szerintem nézz fel az avr.tavir.hu -ra, nagyon jó dolgok vannak, kész leírások is, és a fórum is tele van jó ötletekkel.
(#) jeges válasza balint1993 hozzászólására (») Szept 25, 2009 /
 
Pedig AVR témából elég kevés van a hobbyn !
Picböl anál több!
És keveseben is foglalkoznak AVR programozásal ideje felenditeni ezt az ipart is!
(#) lazsi válasza jeges hozzászólására (») Szept 25, 2009 /
 
"Picböl anál több!"

Igen, ennek így is van értelme , de gondolom Te inkább úgy akartad írni, hogy "annál több"...

És egyetértek: Lendítsük fel az AVR-t! Sokkal jobb, mint a PIC.

Amit használok:
STK500 + AVR Studio, asm

És mivel általában PC-vel is kommunikál (RS232 vagy USB), ott Delphi-ben írt programmal kezelem.

(És a megszakításoknál mindig elfelejtem a regiszterek mentését... )
(#) vtsoftware hozzászólása Szept 25, 2009 /
 
Sziasztok

Nekem máris volna egy kér-d-ésem.
Egyáltalán fogalmam sincs a regiszterekről.

Hogy működnek, hogyan kell küldeni, stb.
Erről ha valaki tudna egy leírást, linket, példaprogramot ATMega8-hoz stb... az nagyon jó lenne.
Van pár IC-m amit így regiszterekkel lehet vezérelni, de úgy hogy azt sem tudom hogy működnek, elég nehéz lesz őket használni.

Előre is köszönöm
(#) adamtui_93 hozzászólása Szept 25, 2009 /
 
hali
Látom ténylkeg felesleges volt ezt megcsinálni mert kédést azt pl egyátalán nem ide kellett volna meg stb... na de mind 1
(#) bankimajki hozzászólása Szept 25, 2009 /
 
Én viszont azt mondom hogy nem lesz rossz ez a topik, a Kandón AVR-eket programozunk (Atmega128), és nekem még teljesen új az AVR, PIC-kel foglalkoztam már de evvel még nem. Tehát ha kerülnek fel ide programok, kis megjegyzéssekkel, az rossz nem lehet. Tényleg sokat lehet ilyenekből tanulni. Hajrá kérek én is mindenkit aki tud AVR-t programozni, az osszon meg velünk némi forráskódot.
(#) vtsoftware válasza adamtui_93 hozzászólására (») Szept 25, 2009 /
 
adamtui_93: 1. Válasz-gomb

Amúgy is, miért nem való ide.

Egy kis inspirálás, ha valakinek van példaprogramja, amiben használ regisztereket, azt is tegye ide, mert szeretném megtudni mi az... igenis a témába való szerintem.
Egy fórumon pedig kötve hinném hogy fogsz tudni olyan témát indítani, ahova szabvány szerűen mindenki csak leírást fog beírni, ez egy fórum tudtommal, ahol ki lehet beszélni dolgokat...

Másrészt a téma címe is leginkább azt sugallja - nekem - hogy keresünk példaprogramot, tegyük fel, szedjük össze.
Egy regiszteres példaprogram, pl... jeleztem hogy egy ilyennek nagyon örülnék.

Úgyhogy szerintem igen is ide való a kérdésem... tehát ezt szerintem hagyjuk.
(#) adamtui_93 hozzászólása Szept 25, 2009 /
 
Értem mire gondolsz csak anyit füznék hozzá hogy azon kivül hogy igazad van eredetileg ugy gondoltam ezt az egészet hogy az avr miértek hogyanokba felteszi mindenki a kérését meg meg az ilyeneket a programokat meg nem a sok szöveg közé teszi be hanem ide és akkor mindenki megtalálja 1 helyen legalább is valami ilyesminek indult
(#) Moderátor hozzászólása vtsoftware hozzászólására (») Szept 25, 2009
 
Idézet:
„ahol ki lehet beszélni dolgokat...”


Nem, az az AVR - Miértek, hogyanok... című topik, ahol az ilyen egyértelműnek tűnő dolgokra rá érdemes kérdezni. Már csak azért is, mert a nagytudásúak főként azt az AVR-es topikot olvasgatják és figyelik.

Ez a topik, gondolom, olyasmi irányba indult el, mint a Programozható kimeneti feszültségű kapcsolóüzemű tápegység című topik, tulajdonképpen egyetlen ember kezeli, illetve egyetlen ember bővíti, lényegében Giants saját topikja, nemigen irkál bele senki semmit. Arra való főként az a topik, hogy Giants informálja az olvasókat, mindent nagyon részletesen leír, közérthetően, összeszedetten, kreatívan és precízen. A saját munkálkodásának / projektjének a levezetéséről szól, folyamatosan, hétről hétre. Olyan, mint amikor valaki saját naplót ír egy témakörben, és heteken keresztül boncolgat egy problémát.
(#) vtsoftware válasza adamtui_93 hozzászólására (») Szept 25, 2009 /
 
Így azért más... de nem fog abban az értelmezésben működni a dolog ahogy Te most gondolod.

Még nagyobb lenne a zűrzavar.M
Például. "Aember" az AVR topikban feltesz egy kérdése, "Bember" tudja a választ. "Bember" beír egy erre a topikra néző linket, ide pedig beírja a forrást és hogy melyik hozzászóláshoz "szánta" a kódot.
Nem lenne az jó. Viszont úgy hogy példakódokat keresünk, gyűjtögetünk, megosztunk, amire "bankimajki" gondolt, meg Én is -kb. - akkor már lenne értelme a topiknak.
(#) vtsoftware válasza (») Szept 25, 2009 /
 
Értelek, nem is akarok veszekedni... de...
Idézet:
„amit ti megcsináltatok és müködött ide tegyétek fel”

"adamtui_93" csak a forráskódra gondolt.
Az AVR topikban pedig minden van ami AVR.
Kapcsrajzok, problémák és források.
Végülis ki lehetne a forrás-gondokat emelni a topikból nem?
Én kérdeztem én nem kaptam választ, legalábbis kerestem de nem találtam Olyan gyorsan el lett más felé terelve a szó... ...én pedig lényegében forrásra gondoltam.

Tehát akkor egy picit módosítanám amit írtam.
...ahol ki lehet beszálni a forráskóddal felmerülő gondokat...
(#) vzoole hozzászólása Szept 25, 2009 /
 
AVR ADC mintaprogram C nyelven.
Processzor: ATMega 8
Részben tesztelve, működő változat lett leegyszerűsítve.

Kérdéseket, javításokat, javaslatokat várom.

keresőszavak...
avr adc mintaprogram avr adc példaprogram avr analóg digitális konverter avr adc konvertálás avr adc example
(#) adamtui_93 válasza vzoole hozzászólására (») Szept 27, 2009 /
 
Én teljes mértékben igy gondoltam ebböl például egy kezdö is megért pár dolgot ha sok ilyen öszegyülik akkor meg segit neki a tanulásban ha olvasgattja öket
ui: köszi
(#) Babó22 hozzászólása Márc 15, 2011 /
 
Hali! Nem tudná valaki elküldeni ezen a honlapon szereplő, Nyolc lábbal AVR című cikksorozat szobanövény szárazság jelző forráskódját .hex fájlban elküldeni? A számítógépemen nem tudom feltelepíteni a AVR Studio-t.
(#) dB_Thunder válasza vzoole hozzászólására (») Márc 23, 2011 /
 
Pont erre a mintára van szükségem !! Igaz attiny45-re kell de azt megoldom.... legalább is remélem

Nagyon kösz!!
(#) dB_Thunder válasza dB_Thunder hozzászólására (») Márc 24, 2011 /
 
Nos megszületett!! (lehet fikázni, ez az első programom ! )
CPU: AtTiny45 ( hex belefér 1 k-ba,)
Működése: PB4 lábra adott feszültség (0-5v) függvényében különböző színekben pompázik a PB0 PB1 PB2 kimenetekre kötött RGB led.
A program kivált egy adag komparátort, és logikai kaput.
Nem mindent kommenteztem fel, mert és sem vágom teljesen ez ADC részt...

Voltstick.c
    
(#) dB_Thunder válasza dB_Thunder hozzászólására (») Szept 9, 2011 /
 
Kreáltam még egy mintaprogit. A hardver tök ugyanaz mint az előző hozzászólásomban, de most a timer0 modul és globális változó felhasználásával szépen kb másodpercenként változtatja az RGB színét.
Igyekeztem alaposan felkommentezni, egyrész magamnak, másrészt azoknak akik jómagamnál is kevesebbet tudnak. (ilyen embert nehéz lesz találni )
Enjoy!
(#) wir12 hozzászólása Okt 18, 2011 /
 
Sziasztok!
Assembly "Hello World" mintaprogramokat nem tudnátok ide felszúrni?

Megköszönném
(#) cedasy hozzászólása Nov 6, 2011 /
 
Egy egyszerű de látványos kis progi attiny13 ra.
Futófény és fényjáték 5 leddel.

teszt.c
    
(#) zuzo válasza vzoole hozzászólására (») Jún 13, 2012 /
 
Hello


// ATMega 8
// ADC példaprogram

#include
#include
#include "lcd.h"

//#define LEDonPORTD |= (1< //#define LEDoff PORTD &= ~(1<
volatile int adc=0;


// IO portok beállítása
void InitPORT() {

// 6543210
DDRC = 0b1011111;
// PC5-ADC5 bemenet, többi kimenet

// DDRB = 0xFF;

// 76543210
// DDRD = 0b10000000;
// PD7 kimenet(LED), többi bemenet
// PORTD=0x00;
}

// ADC beállítása
//--------------------------------------------
void InitADC() {

//********************************************
// 76543210
ADMUX = 0b01000000;
//********************************************
// 7 REFS1
// 6 REFS0
// 00 - Referencia az AREF láb, belső referencia lekapcsolva.
// 01 - Referencia az AVCC láb, AREF láb kondenzátorral testre kötve.
// 10 - Foglalt
// 11 - Belső 2.56 Voltos referencia, AREF láb kondenzátorral testre kötve.
//--------------------------------------------
// 5 ADLAR
//--------------------------------------------
// 4 nem használt
//--------------------------------------------
// 3 MUX3
// 2 MUX2
// 1 MUX1
// 0 MUX0
// ADC port választás binálisan megadva. Itt érdemes 0000 értéket megadni,
// mert lekérdezéskor állítjuk be a portot.

//********************************************
// 76543210
ADCSRA = 0b10000111;
//********************************************
// 7 ADEN
// ADC engedélyezve ha értéke 1, kikapcsolva ha 0.
//--------------------------------------------
// 6 ADSC
// Egyszeri mérésnél 1-re kell állítani, hogy megtörténjen a mérés.
// Folyamatos mérésné ha 1-re állítjuk elindul a mérés,
// ami utánna folyamatosan fut.
//--------------------------------------------
// 5 ADFR
// Ha 1 akkor folyamatos mérés fut, ha 0 akkor egyszeri.
//--------------------------------------------
// 4 ADIF
// Interrupt Flag - nem kell piszkálni
// Ha 1 akkor a megszakítás jött létre.
//--------------------------------------------
// 3 ADIE
// Ha 1 akkor a mérés végén megszakítás jön létre.
// Ha 0 akkor a megszakítás kikapcsolva.
//--------------------------------------------
// 2 ADSP2
// 1 ADSP1
// 0 ADSP0
// Előosztás
// 000 - 1
// 001 - 2
// 010 - 4
// 011 - 8
// 100 - 16
// 101 - 32
// 110 - 64
// 111 - 128

} // InitADC


//--------------------------------------------
uint16_t ReadADC(uint8_t ch) {

ADMUX = (ADMUX & 0b11110000) | ch;
// példa ha ADC 5-ös portot olvasunk. ch értéke (5) binárisan (00000101)
// 01000001 ADMUX jelenlegi állapota (1-es ADC csatorna beállítva)
//& 11110000 ezzel töröljük az előző portk kiválasztást
//= 01000000 eredménynek kapjuk az eredeti ADMUX beállítást
//| 00000101 "ráírjuk" az ADC csatornát
//= 01000101

ADCSRA|=(1<
while(ADCSRA & (1<
return (ADCL | (ADCH<<8)); // adc érték visszaadása

} // ReadADC

//--------------------------------------------
int main() {

InitPORT(); // portok beállításai lefuttatása
InitADC(); // ADC beállítás lefuttatása

for (; {

adc = ReadADC(5);
// adc változóva írjuk az aktuális ADC értéket.
// az érték egy 0-1023 közötti szám

// ezzel az értékkel már bármit csinálhatunk,
// most bekapcsolunk egy ledet, ha ADC nagyobb mint 500
//if(adc > 500) {LEDon;}
//else {LEDoff;}

lcd_init(LCD_DISP_ON_CURSOR);

lcd_gotoxy(0,0);
lcd_puts(adc);

_delay_ms(100);

} // for
} // main

annyi módosítás tettem a kódon, hogy a kijelzőre szeretem volna ki íratni a trimer által állított értéket az az 0-1023 között kapott számot, amit a adc változóból nyerek, amint írtad is, de a kijelzőn minden féle karakter jelenik meg. Maga kijelző jól van konfigurálva, mert bármit íratok rá, azt jól látom, ez egy 2*16 kijelző.
Mit rontok el? Lehet konverzió probléma? Avr Studio 5 használok.
előre is köszi>>>>>>>
(#) vzoole válasza zuzo hozzászólására (») Jún 13, 2012 / 1
 
A számot át kéne konvertálni karakterré.

Deklarálj egy szöveg (buffer) változót, aztán nézd át a sprintf függvényt.

  1. char buffer[7];
  2. sprintf(buffer,"adc= %4.1u", adc);
  3. lcd_putstr (buffer);
(#) zuzo válasza vzoole hozzászólására (») Jún 13, 2012 /
 
Erre gyanakodtam, de nem jöttem rá, hogy mibe. Az mire át veséztem őket rájöttem mibe.
Most akartam feldobni, hogy meg van.

Köszi segítséget

(#) big-pityu hozzászólása Jún 13, 2012 /
 
Szervusztok!

Nagyon örülök szintén ennek a fórumtémának. Már másfél éve foglalkozom AVR kontrollerek programozásával BASCOM alól. Igen sokat segített és segít a mai napig a Cseh Róbert által üzemeltetett TAVIR honlap. Rengeteget tudnak segíteni, bármi is a téma. Jelen pillanatban egy egyszerű 16 karakteres fényújságot készítek 5x7-es LED-mátrix segítségével.
Proci: ATMEGA168
Meghajtó IC: MAX6953 (4db)

A kód (BASCOM)
  1. $regfile = "m168def.dat"
  2. $crystal = 8000000
  3. $baud = 19200
  4. $hwstack = 32
  5. $swstack = 10
  6. $framesize = 40
  7.  
  8. Config Sda = Portc.4
  9. Config Scl = Portc.5
  10.  
  11. I2cinit
  12.  
  13. Dim Text_len As Byte
  14. Dim I As Byte
  15.  
  16. Const Board01 = &HA2
  17. Const Board02 = &HA4
  18. Const Board03 = &HA0
  19. Const Board04 = &HA6
  20.  
  21. Const Digit0 = &H63
  22. Const Digit1 = &H62
  23. Const Digit2 = &H61
  24. Const Digit3 = &H60
  25.  
  26. Dim Text As String * 90
  27. Dim Text_tmp(90) As String * 1
  28.  
  29. Declare Sub I2cwrite(byval Addr As Byte , Byval Digit As Byte , Txt() As String )
  30.  
  31. I2cstart
  32.  I2cwbyte Board01
  33.    I2cwbyte &H01
  34.  
  35.    I2cwbyte &HFF
  36.    I2cwbyte &HFF
  37.    I2cwbyte &H01
  38.    I2cwbyte &H29
  39.    I2cstop
  40. Waitms 10
  41.  
  42. I2cstart
  43.  I2cwbyte Board02
  44.    I2cwbyte &H01
  45.  
  46.    I2cwbyte &HFF
  47.    I2cwbyte &HFF
  48.    I2cwbyte &H01
  49.    I2cwbyte &H29
  50.    I2cstop
  51. Waitms 10
  52.  
  53. I2cstart
  54.  I2cwbyte Board03
  55.    I2cwbyte &H01
  56.  
  57.    I2cwbyte &HFF
  58.    I2cwbyte &HFF
  59.    I2cwbyte &H01
  60.    I2cwbyte &H29
  61.    I2cstop
  62. Waitms 10
  63.  
  64. I2cstart
  65.  I2cwbyte Board04
  66.    I2cwbyte &H01
  67.  
  68.    I2cwbyte &HFF
  69.    I2cwbyte &HFF
  70.    I2cwbyte &H01
  71.    I2cwbyte &H29
  72.    I2cstop
  73. Waitms 10
  74. '-------------------------------------
  75. 'Wait 2
  76.  
  77. Text = "                Keszitette: Ampervadasz!                ^"
  78.  
  79. Text_len = Len(text)
  80.  
  81.  
  82.  
  83. For I = 1 To Text_len
  84.  
  85.    Text_tmp(i) = Mid(text , I , , 1)
  86.  
  87. Next
  88.  
  89.  
  90.  
  91. Do
  92.  
  93. For I = 1 To Text_len
  94.  If Text_tmp(i) = "^" Then Exit For
  95.  Call I2cwrite(board04 , Digit3 , Text_tmp(i))
  96.  
  97.  If Text_tmp(i + 1) = "^" Then Exit For
  98.  Call I2cwrite(board04 , Digit2 , Text_tmp(i + 1))
  99.  
  100.  If Text_tmp(i + 2) = "^" Then Exit For
  101.  Call I2cwrite(board04 , Digit1 , Text_tmp(i + 2))
  102.  
  103.  If Text_tmp(i + 3) = "^" Then Exit For
  104.  Call I2cwrite(board04 , Digit0 , Text_tmp(i + 3))
  105.  
  106.  If Text_tmp(i + 4) = "^" Then Exit For
  107.  Call I2cwrite(board03 , Digit3 , Text_tmp(i + 4))
  108.  
  109.  If Text_tmp(i + 5) = "^" Then Exit For
  110.  Call I2cwrite(board03 , Digit2 , Text_tmp(i + 5))
  111.  
  112.  If Text_tmp(i + 6) = "^" Then Exit For
  113.  Call I2cwrite(board03 , Digit1 , Text_tmp(i + 6))
  114.  
  115.  If Text_tmp(i + 7) = "^" Then Exit For
  116.  Call I2cwrite(board03 , Digit0 , Text_tmp(i + 7))
  117.  
  118.  If Text_tmp(i + 8) = "^" Then Exit For
  119.  Call I2cwrite(board02 , Digit3 , Text_tmp(i + 8))
  120.  
  121.  If Text_tmp(i + 9) = "^" Then Exit For
  122.  Call I2cwrite(board02 , Digit2 , Text_tmp(i + 9))
  123.  
  124.  If Text_tmp(i + 10) = "^" Then Exit For
  125.  Call I2cwrite(board02 , Digit1 , Text_tmp(i + 10))
  126.  
  127.  If Text_tmp(i + 11) = "^" Then Exit For
  128.  Call I2cwrite(board02 , Digit0 , Text_tmp(i + 11))
  129.  
  130.  If Text_tmp(i + 12) = "^" Then Exit For
  131.  Call I2cwrite(board01 , Digit3 , Text_tmp(i + 12))
  132.  
  133.  If Text_tmp(i + 13) = "^" Then Exit For
  134.  Call I2cwrite(board01 , Digit2 , Text_tmp(i + 13))
  135.  
  136.  If Text_tmp(i + 14) = "^" Then Exit For
  137.  Call I2cwrite(board01 , Digit1 , Text_tmp(i + 14))
  138.  
  139.  If Text_tmp(i + 15) = "^" Then Exit For
  140.  Call I2cwrite(board01 , Digit0 , Text_tmp(i + 15))
  141.  
  142.  
  143.  
  144.  Waitms 100
  145. Next
  146.  
  147. Loop
  148.  
  149.  
  150. Sub I2cwrite(byval Addr As Byte , Byval Digit As Byte , Txt() As String )
  151.  
  152. I2cstart
  153.    I2cwbyte Addr
  154.    I2cwbyte Digit
  155.    I2cwbyte Txt
  156.  I2cstop
  157.  
  158. Waitms 10
  159.  
  160. End Sub


PROTEUS-ban lehet szimulálni!

Remélem segítettem egy kicsit!
(#) avrdavid hozzászólása Aug 20, 2014 /
 
Sziasztok. Valaki tudna nekem olyan avr es gyújtást mutatni ami egyszerű és kesobbiekben tudom majd fejlesztgetni. Sajnos nem találok semmit a neten ea nem tudok elindulni sehogy
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem