Fórum témák
» Több friss téma |
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
tudnál nekem eggy HEX fájlt mellékelni ami szerinted jó? És a 3 fajta 9.6MHz közül melyiket állitsam be? (AVR Studio 4.15 Build 623) Belső RC-n van És ha berakom a CLKDIV8-at akkor lassabban villog, de ugyanúgy össze-vissza.Köszi a válaszod előre is.
Arra figyeltél hogy előbb a magasabb helyiértékű byte-t küldi, aztán meg az alacsonyabbat?
nemtom asm-ben hogy van, de úgy látom h kb úgy mint c-be szal ha TWCR-be (1 < TWINT) (1 < TWEN) (1 < TWEA) -et raksz akkor fog ack-t küldeni ha csak (1
nah megbolondítja a fórumot a 1< jel,eh..
szal ha csak (1 < TWINT) (1 < TWEN) -t raksz be akkor meg NACK lesz, a NACK csak annyi hogy nem küld ACK-t.>>>
Vedd ki a CLKDIV8-at, azt írtam, nem hogy betedd. 9,6MHz-ből a legnagyobbat. Legnagyobb Start-up Time stb.
HEX fájlt úgy fordítsd le, ahogy az első részben van. Procit pontosan beállítva, optimalizációt Os-re vagy O1-re téve, F_CPU-t beírva!
Szia!
Köszi a NACK-ot. Persze hogy tudom, hogy a felső byte-ot küldi először Módosítottam is ennek megfelelően a progit. Illetve beletettem egy STOP funkciót is, de az nem működik valamiért. (20as kóddal tér vissza, hogy nem kapott acknowledge-t) Két kérdés még: Ha elindítom a konverziót, akkor is ki lehet olvasni ugye ? (tehát nem kell megállítanom) Másrészt, ha küldök start v. stop feltételt, ahhoz nem kell először hozzáférnem a config registerhez ? Elég csak simán a start jel (EE hex) ? és annyi ? Ja meg jut eszembe: a felső byte: 91h, az alsó byte: 0Fh. Vélemény ? Üdv Kiborg (jut eszembe: BUÉK!!! )
Mind1. Lehet az XP-t kéne újratelepitenem. Legmagasabb alatt ezt érted : "Int. RC Osc. 9.6 MHz; Start-up time: 14 CK + 64 ms" ? Másrészt forditani már tudom a forráskódot nem is azzal van a gondom. Hanem a fuse bitekkel van gondom, mivel AVR studioban mutattad be akkor legalább az ATtiny13-nak is mutasd be a beállitását ne csak az ATtiny45-nek akkor legalább tudnám hogy merre induljak el hogy hol lehet a gond mert a fényerőszabályozós LED már működik az sem volt eggy darabig tökéletes mivel a videóhoz képest nállam gyorsabban futott le a PWM.Na helló.
Az lenne a kérdésem, hogy léteznek e alternativ ISP lábkiosztások?
Találtam egy ISP csatlakozást egy kapcsoláson, előszedve a Topi féle USB-ISP programozó lábkiosztását, kiméregettem, hátha ugyanaz, de nem is hasonlit. Az lenne a kérdésem, hogy tönkre mehet e a proci, ha nem a megfelelő lábakat kötöm össze az ISP és a kapcsolás között. A proci tipusa lényegtelen, egy digitális beltéri az áldozat
Elképzelhető hogy kell már ms neki hogy az első konvezrió végrehajtódjon, a szenzor adatlapjában kéne megnézni, mindenesetre ha beleraksz pár ms-t abból baj nem származik.
Aztán futhat persze folyamatosan, abból baj nem származik, max többet fogyaszt, de az csak elemes eszközöknél kell figyelembevenni. A másofik részt nem telj. értem, tehát a szenzornak van egy config registryje? Akkor hasonló ahhoz amit én használtam (LM75, LM73). Ha igen akkor elvileg úgy kell csinálni hogy start jel, aztán egy írás, amivel kiválasztod a regisztert, utána ismételt startjel, és kiolvasni a temp. datát (már ha a temp regisztert választottad ki). De ahogy elnézem a így csináltad, de a nack nem úgy működik ahogy gondoltad, most nézem a kódod. Tehát még mielőtt kiolvasod a byte-t már úgy kell a twcr-be mozgatni az értékeket hogy ezt most kell majd akz-zni vagy nem kell mejd,tehát azt nem te adod ki közbetlenül hanem azt mondod az atmega-nak hogy olvass ki egy bytet és ack-zd is, és akkor azt csinálja kövi körbe vagy azt hogy olvass ki egyet és nack-old. szal az ott biztos nem jó.
Üdv!
Az első atmeles fejlesztésem legelején egy problémába ütköztem, ebben kérnék egy kis segítséget. A problémám az lenne, hogy nem látom debugolás közben a lokális változók értékeit, csak a globálisakat tudom követni watch-ban (AVR studiót, winavr-t használok). Az alábbi rövid kódban csak az 'a' változó értékét látom watchban (a többi 0):
Valószínűnek tartom, hogy a .bss section környkén van a jelenség oka, de bármit is próbáltam a Project/Configuration options/Memory settings ablakban megadni, a helyzet nem változott... Milyen segment beállításokat alkalmazzak, illetve mit tegyek, hogy a fenti probléma megoldódjon? Válaszokat előre is köszönöm! Idézet: „AVR studioban mutattad be akkor legalább az ATtiny13-nak is mutasd be a beállitását ne csak az ATtiny45-nek akkor legalább tudnám hogy merre induljak el” Elmondtam, hogy 9600000 az F_CPU és ATtiny13 a processzor. Más beállítás nincs az AVRStuidóban. "Bemutathattad volna" stílus: A Cikk nem arra van, hogy én mindent az illető szájába rágjak. Nem érzem úgy - ellentétben hogy te komolyan ezt állítod - hogy az én hibám, hogy neked most nem működik, és én hibáztam mert nem mutattam be egy totál evidens dolgot. Sőt... Itt hozzászólásban is leírtam, mit kell tenned. Ezzel a nyájas, kedves stílusoddal igencsak el tudod venni az ember kedvét attól, hogy ilyen cikkeket írjon és segítsen másokon. Gondolkodj már hallod mielőtt leírsz valamit. Idézem: Idézet: „Na helló.” Hánynom kell a stílusodtól. Drágám, nem a te hátsódból jön a napfény.
Ennek itt a helye szerintem: Bővebben: Link Itt biztos segítenek.
Az ISP és a JTAG nem ugyanaz. Az ISP elsősorban programozásra lett kitalálva, a JTAG meg sokminden másra. Lehet vele gyártótól függően regisztereket olvasni, átírni az adott proceszorban. A JTAG-nak van egy halom ipari szabvány által meghatározott lábkiosztása.
Guglizz rá, és valószínűleg a táp, GND kimérése után be lehet lőni vajon melyik a neked megfelelő.
Szia!
Az idővel nem valsz, hogy gond lenne, mert lépésenként hajtom végre a programot, tehát a pár ms várakozás megvan. Csatoltam a ds1624 datasheet-jet, abból megérted, hogy miért írtam config byte-ot. Viszont amit az (LM75,LM73) után írtál, azt egyáltalán nem értem. Mit kell a twcr-be mozgatni ? Mit kell mondani, hogy ACK vagy NACK legyen automatán ? SZóval a második bekezdésed nekem sötét. Légyszíves nekem kicsit érthetőbben. Köszi: Kiborg A két hexa érték a hozzászólás végén az, hogy ezt a két értéket olvasom ki a chip-ből. Felső: 91h, alsó 0Fh vagy kézrátétel után felső:91h, alsó 10h. A datasheetben az áll, hogy az alsó byte 3 legkisebb helyiértéke mindig 0, akkor nekem hogy a fenébe lett ott 1-esem ???
Sziasztok! Az a kérdésem lenne, hogy megoldható-e a WinAvr vagy más fordítónak a az Include mappában található Header fájlok, CodeVision fordítóba való átmásolása? Mert vannak gondjaim a meglévőkkel, az EEPROM-ot mégcsak véletlenül sem tudom kezelni a beépített rutinnal. Az LCD érdekes dolgokat művel, viszont szimpatikus a Codevision és nem szeretnék még elpártolni tőle A válaszokat, tanácsokat előre is köszönöm!
Üdv!
Aham, értem.
szal úgy van ugye hogy van az atmegába a twcr aminek mondod hogy mit is akarsz, most a read_temp-et nézve: első lépésként a TWCR-be berakod a TWINTet a TWSTA-t meg a TWEN-t aminek következtébe kiadja a start jelet amit utána leellenőrizel. Aztán jön a szenzornak a control byte-ja (magyarán a címe aminek a vége 1 vagy 0 attól függően hogy írsz vagy olvasol) berakod a WTDR-be az adatot aztán TWCR-be megmondod neki hogy küldje el. Aztán a command protocol ami megint jó... Aztán küldessz egy új start jelet, ok. Újra elküldöd a control byte-ot , ok. Viszont mikor fogadni akarsz az már nem jó, ott is hasonlóan kell eljárni mint eddig (vagy pont nem hasonlóan), szal TWCR-be megmondod hogy most akarsz fogadni egy byteot és hogy ha fogadta akkor küldjön ack-t tehát a 165. sorba először TWCR- be be kell rakni a TWINT, TWEN, TWEA biteket, aztán wait-elni hogy meglegyen a vétel, a TWDR-ből kiolvasni a beérkezett adatot. utána kell jönni az alsó byte-nak ami hasonlóan megy csak itt már a TWCR-be csak TWINT, TWEN bit-ek kellenek ezzel jelezve hogy ne küldjön ack-t tehát nack legyen. utána megint várni, és utána kivenni a TWDR-ből kivenni az adatot, utána küldeni kell még egy stop jelet ami csak annyi hogy TWCR be TWINT,TWEN,TWSTO bitek kellenek. Szerintem a mit kiolvastál annak az 1. byte-ja az vmi random, a 2. byte-ja meg a felső.
sőt az 1. byte a control byte, ami érthető is, hiszen nem raktál semmit a twcr-be és úgy olvastál ki, tehár a twdr nem változott.
WOW ! :worship:
Működik. köszönöm szépen a segítséget. Olyan kérdésem lenne még, hogy amikor elküldöm a STOP jelet a buszon, akkor miért nem működik az a várakozási ciklus, mint ami előtte van ?( pl: a wait3) Nem áll vissza TWINT 1-be, hogy kilépjen a ciklusból. De miért ? Kiborg ui: hogy lehet pontot adni ???
örülök hogy megy, szívesen
stop jel után a TWSTO bitet kell nézni a TWCR -be, amíg 1 addig még nem jó ha 0-ra vált akkor kész.
Hát ez is jó :worship:
Még egyszer köszi a segítséget. Következő lépés az lesz, hogy felfűzök több eszközt a buszra és máris kész a kinti-benti-vízhőfok-kazánhőfok figyelő rendszerem. Maximálisan milyen hosszú lehet egy i2c busz ? Kiborg
A kábelhosszra gondoltam.
Azt tudom hogy elvileg max 127 db eszköz pakolható fel a buszra, de az nekem nagyon sok. Kiborg
Hm ezt nemtudom, ha más jobbat nem mond, ki kéne próbálni hogy sda meg scl elé bepakolsz vmi próbaellenállást (pl 0.5, vagy 1 ohm) és hogy úgy megy e, aztán ha megvan hogy meddig jó, akkor a réz fajlagos ellenállásából a vezeték átmérőjéből már meg lehetne mondani a maximális hosszat.
Bocsanat, hogy bele kotnyeleskedem, de az I2C nem nagytavolsagu halozatokra lett kitalalva - es hat nemcsak a vezetek ellenallasa all vagy bukik a dolog. Vagy RS482 vagy CAN bus-t alkalmaznek.
A leírásokban 400pF szerepel, mint maximális buszra pakolható IC kapacitás.
Ezzel nem sokat tudok tudok kezdeni az a baj. Mindegy, majd próbálgatom. Üdv Kiborg
Üdv mindenkinek! A kérdésem az lenne, hogy Linux kompatibilis-e a HEstore-ban kapható AVR-ISP programozó KIT? ( Ubuntu Linux 8.10-re kellene). Ha igen, milyen csomagot kellene felpakolni?
Üdv!
A HEStore-os AVR-ISP programozóhoz fell kell telepíteni a libusb drivert? Ha fel kellene, és nem teszem fel, akkor mi lesz a hátrányom?
Csak AVRStudio (ami alapból felteszi az usb cuccokat is) és winAVR kell.
Sziasztok!
Full kezdő vagyok, ezért merek megkérdezni olyat hogy ATMEGA8-at mivel lehet felprogramozni (hardwer - nem usb)? Illetve ha van egy kész .hex fájlom akkor azt milyen progival lehet írni?
LPT portos STK200 a HW.
SW-ből: AVRDuDe, PonyProg, Bascom...
Tehát itt a felső ugye?
Bővebben: Link (Eddig nem találtam meg, csak most ahogy a program nevekre rákerestem) |
Bejelentkezés
Hirdetés |