Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   29 / 840
(#) gtk válasza PLaci hozzászólására (») Júl 16, 2007 /
 
Koszi !
Megnezem.Pont jo lenne,mux miatt plane.
(#) deguss válasza MaSTeRFoXX hozzászólására (») Júl 17, 2007 /
 
A nem megfelelő fuse bitekkel felprogramozott AVR-eket is lehet még programozni, méghozzá párhuzamosan, egy "igazi" Galep-pel. Nekem sajnos nincs, de suliban van.
Ha több "póruljárt" AVR-t összegyűjtötök, talán tudok segíteni, kiszedni a fuse biteket.
PonyProg valóban csalóka, a pipa a 0.

Üdv. deguss
(#) PLaci válasza deguss hozzászólására (») Júl 17, 2007 /
 
Szia!
Engem érdekelne a dolog, nekem (ha kellően keresgélek) talán 3 db hentereg valahol..
TUdnál jönni skype-ra?
(#) gtk hozzászólása Júl 18, 2007 /
 
Szerintetek ezzel az IC-vel: ADS7841P ujra csak SPI-n lehet komunikalni?
Az a gondom hogy mar foglaltt az SPI.
Mi johet meg AVR-nel szoba?
(#) gtk válasza gtk hozzászólására (») Júl 18, 2007 /
 
Melleklet.

ADS7841P.pdf
    
(#) PLaci válasza gtk hozzászólására (») Júl 18, 2007 /
 
Szia!
Már biztos nagyon únod, de megint csak azt tudom írni, ha az SPI-d már foglalt, és mégegyre szükséged van, akkor a másodikat írd meg software-ben. Akkor te döntheted el, melyik portlán lesz a DI, DO, és a CLK.
Ahogy néztem a pdf-t itt külön láb az input/output.
(#) gtk válasza PLaci hozzászólására (») Júl 18, 2007 /
 
Szia !

Softwaresen.. azert nem szeretem mert az idozites (delay) egy rakas proci idot megesz.
Mikor kell kitennni az adatot? Clock utan? Tehat egy orajelciklus utan kishiftelem az adatot?

Szerinted mennyire lenne jo feszultsegmeresre ez az IC? Gondoltam referencia feszultsegnek rakok egy REF IC-t.
4 MUXolhato bemenete van. Sztereo tapot szeretnek epiteni, igy pontosan 4 feszt kellene merni.
(#) PLaci válasza gtk hozzászólására (») Júl 18, 2007 /
 
Ebben az esetben a prociidő nem jelent problémát. Hány mérést/leolvasást akarsz másodpercenként?
Szerintem 2-nél többnek nincs értelme, mert úgysem tudnád szemmel követni. Ez méréseként 500mS idő. Ha 4 Mhz órajellel vezérled a procit, akkor ez az 500mS 2000000 utasítás. Nehogy már ennyiből ne jöjjön ki a softwares soros beolvasás
Még nem sokat néztem, a pdf-edet, de kb úgy kell vezérelni, hogy előszőr leteszed a CS lábat nullára, beteszed egy regiszterbe a megfelelő 1 bytos parancsot, (le volt írva a bitek jelentése) majd shifteled CY keressztül balra vagy jobbra (attól függ, hogy az AD konvertered melyik bitet akarja elsőnek látni) Majd kiteszed az adatot, és ezután csinálsz egy FELFUTÓ (itt felfutó) élet a clk lábon ezt megimétled 8x.
Ezután fogod tudni beolvasni a 8, vagy 12 bite konverzió eredményét (hogy mennyi bit lesz, és melyik bemenetről ez megint a parancsbyte-tól függ)
(#) PLaci válasza gtk hozzászólására (») Júl 18, 2007 /
 
Közben nagyon "eretnek" gondolat jutott eszembe. 600 Ft-ért kapsz kész digitális multimétert a különböző zugpiacokon. Nem járnál jobban ha vennél 2 db-t?
Vagy fontos az építés öröme?
Közben olvasom a pdf-t ha a mode labat födre kötöd, akkor parancsbyte-tól függetlenül 12 bites módba konvertál.
(#) MaSTeRFoXX válasza PLaci hozzászólására (») Júl 18, 2007 /
 
Idézet:
„Közben nagyon "eretnek" gondolat jutott eszembe. 600 Ft-ért kapsz kész digitális multimétert a különböző zugpiacokon. Nem járnál jobban ha vennél 2 db-t?”

Ugyan, hogy nézne már ez ki egy házigyártmány készülékben? Nagy multiméter nyák feleslegesen Az építés öröme és a kinézet is fontos.
(#) gtk válasza PLaci hozzászólására (») Júl 20, 2007 /
 
Koszi a segitseget. Talan jovo heten tudok vele foglalkozni.
Azon is gondolkodom hogy MUX-al valahogy megosztom az SPI-t a ket ICnek.(vfd es adc)

600Ft-os muszer...Nezd, korabban emlitettem hogy VFDn akarom megjeleniteni az adatokat. Ezert irtam hozza drivert is. Ha mar arrol van szo, hogy multimetert veszek a l.tapba, akkor inkabb labortapot veszek. Nem ez a lenyege az egesznek
(#) PLaci válasza gtk hozzászólására (») Júl 20, 2007 /
 
Szia!
Talán még a mux sem kell a megosztáshoz (csak agyalok) Szerintem mind a 2 IC-nek van CE (chip enable) bemenete. Ha erre van még 2 szabad portbited, illetve elég lehet 1 is és egy inverter, akkor meg tudod oldani, hogy az 1 db hardware SPI-d melyikkel kommunikáljon. Persze ha nem egyforma paraméterekkel beszélgetsz velük, akkor a bitrátát, és egyéb dolgokat mindig át kell állítgatni az éppen aktuálisra az Atmel procin. Egy jólnevelt IC-nél a chip select deaktiválása általában tri-state be teszi a lábakat. (de ehhez még böngészd a katalógust), igy mindig azzal tudnál beszélgetni amelyik éppen aktív. Lehet hogy a reset láb tiltása is ugyan ezt csinálja.
A 2 mutiméter nálam is csak kósza ötlet volt, ezért is írtam az építés örömét, és a smiley-t a végére.
Sok sikert, és várom az eredményt...
(#) gtk válasza PLaci hozzászólására (») Júl 20, 2007 /
 
Szia !

Ez egy jo otlet ! Erre nem is gondoltam. Utanna nezek komolyabban. Ugyanazon a bitratan mehetne a komunikacio es valtogatni sem kellene(de ez sem gond), mert az ADC ha jol emlekszem 200Khz-et tud, a kijelzo meg 500khz-et.

Az a gond hogy az LPCkbe nagyon beleakadtam, alig varom hogy mar vegre mukodjon egy LPCs fejlesztopanel. Ugy, hogy nem tudom melyik lesz kesz elobb.
(#) PLaci válasza gtk hozzászólására (») Júl 20, 2007 /
 
LPC = PLC? Bocsi a tudatlanságomért, de fogalmam sincs mi az LPC Sajna megint itt a hétvége ami azt jelenti, hogy szinte nem is leszek gépközelben 2 napig.
(#) gtk válasza PLaci hozzászólására (») Júl 21, 2007 /
 
>>LPC<<

Nekem meg mostanaban csak 7vegen van idom forumozni, stb.
(#) kocsgab002 hozzászólása Júl 23, 2007 /
 
Sziasztok!
Olyan kérdésem lenne, hogy Ti hol veszitek a mikrovezérlőket? Eddig csak a TavIR oldalon láttam pl ATMega8 az 800HUF volt., Az jó ár vajon? mert ha PIC akkor ChipCad, de ha AVR...?
előre is köszi.
Kocsgab
(#) potyo válasza kocsgab002 hozzászólására (») Júl 23, 2007 /
 
(#) MaSTeRFoXX válasza kocsgab002 hozzászólására (») Júl 23, 2007 /
 
Vagy http://www.ret.hu, van boltjuk Pesten is
(#) Pavel hozzászólása Júl 23, 2007 /
 
Üdv

A minap találtam az atmel oldalán egy kis c programozás segédletet. A leírás az IAR C compilerére vonatkozott, de elkezdtem játszogatni a leírtakkal avr-gcc alatt (4.0.2), az eredmény szerintem nagyon hasznos

  1. #define F_CPU 10000000UL
  2.  
  3. #include <stdio.h>
  4.  
  5. #include <stdlib.h>
  6.  
  7. #include <avr/io.h>
  8.  
  9. #include <util/delay.h>
  10.  
  11.  
  12.  
  13.  
  14. #define USE_UART       
  15.  
  16. #include "device.h"
  17.  
  18. typedef struct
  19.  
  20. {
  21.  
  22. unsigned        bit0 : 1,
  23.                 bit1 : 1,
  24.                 bit2 : 1,
  25.                 bit3 : 1,
  26.                 bit4 : 1,
  27.                 bit5 : 1,
  28.                 bit6 : 1,
  29.                 bit7 : 1}
  30. IOREG;
  31.  
  32. #define PORT (*(IOREG*) 0x32)
  33.  
  34. int main(void)
  35.  
  36. {
  37.         usartInit( 19200 );
  38.  
  39.         print ( "Hello world example\n" );
  40.  
  41.         DDRD |= ( 1 << PD6);
  42.  
  43.         while(1)
  44.         {
  45.                 PORT.bit6 = 1;
  46.                 delay(1);
  47.                 PORT.bit6 = 0;
  48.                 delay(1);
  49.         }
  50. }


a PORT itt most a PORTD -t jelenti, igy szerintem sokkal könyebb a biteket ki be kapcsolgatni! a compiler pedig sbi, cbi nek fordítja, tehát a kód méretén és bonyolultságán semmit nem változtat.
Remélem hasznát veszitek!

Üdv mindenkinek

jav: miért nem jelenik meg jól?
csatolva az eredeti forrás.

main.c
    
(#) gtk válasza Pavel hozzászólására (») Júl 23, 2007 /
 
Hello !

Ezek a bitmezok..Regebb hasznaltam ilyesmit PC-n. Latod meg nem fordult a fejemben hogy AVR-en hasznaljam. Igaz nem is lattam eddig ertelmet. Az SBI, CBI sem minden esetben muszaly az legyen. Altalaban jo a fordito altal nyujtott kod is, csak mukodjon
(#) gtk válasza Pavel hozzászólására (») Júl 23, 2007 /
 
Egy ket fontos dolog ezzel kapcsolatosan:

-A mezo tipusa csakis unsigned int lehet.(legalabbis a szabvany szerint) Lehet elojeles is, de akkor az adott bit erteke erteke 0 vagy -1 lesz.
-Az adott mezo hossza max int szeles lehet.

  1. struct {
  2.   unsigned int mezo1: 1; //1 bit hosszusag
  3.   unsigned int mezo2: 2; //2 bit hosszusag
  4.   unsigned int mezo3: 4; //4 bit hosszusag
  5.   unsigned int mezo4: 1; //1 bit hosszusag
  6. } IOX;


Ahhoz, hogy pontosan a bitek mereteinek osszege -helyet foglaljon le a fordito "struct __attribute__ ((__packed__)) my_packed_struct" alakot kell alkalmazni. (ansii C)

Ez pl. pontosan 24 bit helyet foglal.

  1. struct __attribute__ ((__packed__))  {
  2. int f0: 3;
  3. int f1: 3;
  4. int f2: 3;
  5. int f3: 3;
  6. int f4: 3;
  7. int f5: 3;
  8. int f6: 3;
  9. int f7: 3;
  10. } STRUCT_24_BIT;


Kernel -kodokban eloszeretettel hasznaljak.
(#) deguss válasza Pavel hozzászólására (») Júl 24, 2007 /
 
Belejavítottam a hozzászólásotokba utólagos engedelmetekkel.

Használjátok programkód beszúrásánál a [ c o d e = c ] kód [ / c o d e ] tagokat.

Üdv. deguss
(#) gtk válasza deguss hozzászólására (») Júl 24, 2007 /
 
Koszi ! Klassz !
Mindig errol almodtam
(#) deguss válasza gtk hozzászólására (») Júl 24, 2007 /
 
Örülök, hogy valóra tudtam váltani valaki álmát. Áhh, Topi Mester fejlesztése.
(#) potyo válasza gtk hozzászólására (») Júl 24, 2007 /
 
Arról, hogy valaki belejavítson a hozzászólásodba?
(#) gtk válasza potyo hozzászólására (») Júl 24, 2007 /
 
Most minek kell felreerteni?
Arrol, hogy vegre rendesen megjelenjen a forraskod.
(#) zeusz7 hozzászólása Júl 26, 2007 /
 
Hello!

RS-232-n küldök folyamatosan egy rövid szöveget a PC-nek ATtiny2313-ról, de nem azzal a BaudRate-tel jön, mint kéne.

A fuse bitekkel beállítottam, hogy 4-8 MHz külső kristály oszcillátorról menjen, de az adatlapon szereplő UBRR értékek nincsenek összhangban a kijövő baudratekkel, mintha nem 1MHz,nem 4MHz és nem 8MHz-ről menne (próbáltam 4 és 8 megás kvarccal is).

A fuse biteknél nem teljesen értem mit csinál a CKDIV8 és a SUT10 bit beállításnál mire jó a BOD enabled. Esetleg ezek zavarnak be vagy mi lehet még a probléma?

köszi
(#) PLaci válasza zeusz7 hozzászólására (») Júl 26, 2007 /
 
Szia Zeusz!
A legvalószínűbb, hogy a CKDIV8 (ClocK DIVision) neked aktivizálva van. Ez azt jelenti, hogy a quartz jelének csak 8-adával megy a procid. Ha a feltételezésem igaz, akkor a baudrate is nyolcada a vártnak. Ezt a bitet váltsd át és (szerintem) helyreáll a sebességed.
(#) zeusz7 válasza PLaci hozzászólására (») Júl 26, 2007 /
 
köszi, közben magamtól pont ezt csináltam, de inkább csak belső sugallatra és most működik
(#) PLaci válasza zeusz7 hozzászólására (») Júl 26, 2007 /
 
Nem nagy ördöngősség, a pdf-ben le van írva.
Bár a paralel programozás is ilyen világos lenne!
Következő: »»   29 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.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