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
Sziasztok!
AVR-el még nem dolgoztam, csak PICcel, most is csak beégetni szeretnék egy kész programot. (mellékelem). Ez a hex file teljesen úgy néz ki,mint egy PIC-es hex file, a sorok elején a memória címek is láthatóak (mármint a tartomány, soronként). Készítette egy soros égetőt a lancOS oldal alapján,és PonyProg-ot töltöttem le az égetéshez. A kontrollert írom-olvasom, teljesen jól működik, egy bajom van: Ha betöltöm a HEX filet,akkor a program kódban megjelenik a hexfile sor elején lévő memóriacím is, így a 8K-ba beleférő kód, túllép jóval 8K-n, az eeprom területre is beleír, tiszta zöldség az egész.... Szóval a kérdésem az lenne, hogy hogyan tudom a programozó szoftver értésére adni,hogy ez a hexa file ez tartalmazza a címet is a sor elején,és azt ezért ne tegye bele a kódba?! Köszönöm a segítséget előre is!
Aha!
tudom mi a baj, csak nem tudom, hogyan lehet orvosolni: ez a hex file html oldalba volt beimportálva,és én egyszerűen ctrl+c , ctrl+v -vel tettem be fileba. Egy másik sample programot ha megnyitok, akkor a memóriacím nem kerül bele a kódba. Tehát valahogy a sorvégekkel, vagy ilyesmivel lehet baj. Megnyitottam a filet HEXeditorral,és a másik példa programot is, de mindkettőnek a sorvége 0D, 0A-val végződik, a file vége viszont a helyes programnál 0D,0A, a hibás programnál viszont 0D,0A,0D,0A. Akkor meg is mondom: Ez volt a hiba! Kitöröltem az utolsó szekvenciát, és most jól beolvasta a PonyProg! Köszönöm a segítséget mindenkinek! ![]() (ez az a helyzet,amikor előbb írok,mint gondolkodok :no: )
Sziasztok!
A Topi féle AVR programozót használom, de sajnos nem igazán akar müködni! A soros porti kommunikáció nem müködik! Ha átrakom hid módba akkor win7 alatt semmi, Linux alatt pedig /dev/-ből eltünik az att. Így nemtudom használni. Nincs valakinek ötlete mitől lehet ez? Mivel lehet usb-soros átalakítani? illetve a kristálynak mire vna szüksége? Tápfeszre? vagy csak az avr emgfelelő kimenetére kell kötni? üdv: maq
Sziasztok!
Kezdőhöz méltó kezdő kérdésem lenne. Programozó: AVR dragon, ISP letöltéssel. IC: Tiny45 Ha a FUSE biteknél letiltom a reset lehetőségét, akkor tudom még valaha a beforrasztott IC-t programozni? Vagy csak a program lezárása után szabad letiltani a reset lehetőségét? (A probléma abból ered, hogy nagyon kellene az ADC0 láb, ami ugyebár együtt van a reset-tel.) Köszi! Z.
A resetet a helyedben csak a végleges program után zárnám le. Az Isp programozó megköveteli a resetet, így ezzel már nem fogod tudni átírni. Persze van lehetőség utána is nagyfesz programozóval, de az macerásabb talán.
Üdv
1 kérdésem lenne. Nem igazán vagyok "otthon" az AVR és pic programozásban, (annyit tudok, hogy ha van 1 Hex, azt beégetem és kész) de most kaptam 1 motor vezérlő elektronikát, amiben van egy Attiny2310-20su kontroller. Van 1 Pickit2-m, amivel- úgy tudom- be lehet égetni a meglévő HEX-et, nekem csak erre lenne szükség, ha változtatni kellene a programon. http://pickit2.isgreat.org/ Mit kell átalakítani esetleg módosítani a Pickit2-n,hogy ezt meg tudjam csinálni? Vagy felejtős. Köszi
Helló. ITT megtalálod a szükséges információkat.
Sziasztok
Segítségért fordulnék hozzátok. Megépítettem életem első AVR-es kapcsolását, egy digitális labortápot, amit egy ATmega8 vezérel. Annyi különbség van az eredetihez képest, hogy én ATmega8 helyett ATmega8A-t raktam bele. Működik minden szépen és jól, kivéve azt, hogy nagyon lassú a működése, konkrétan van hogy két mp-ig is kell nyomni a gombot hogy valami történjen. ![]() Mellékelem a kapcsolási rajzot és a hex-et. Akinek van ötlete légyszíves segítsen. Elképzelhető, hogy az AVR programozásakor rontottam el valamit? Programozásnál nem állítottam át semmit, a fuse bitekkel sem variáltam. Előre is köszönöm a segítséget. ![]()
"Po przestawieniu na 8Mhz wszystko chodzi jak powinno." Azaz állítsd át a mega8 órajelforrását belső 8Mhz-re, mert a gyári beállítás 1Mhz. Internal 8mhz. Szabad kérdezni milyen programmal programoztad fel a processzort.?
Szia
AVR Studióval programoztam. Azt még had kérdezzem meg , hogy lehet átállítani az órajelforrást? Gondolom valahol a fuse biteknél kéne keresnem, illetve azok közt a fülek közt. ![]() Egyébként köszönöm szépen a segítséget!
Köszönöm szépen!
Jelen pillanatban nem vagyok otthon, de amint hazaérek és újra felprogramozom az AVR-t, jelentkezem hogy mi a helyzet ![]() Mégegyszer köszönöm, nagyon sokat segítettél :worship:
Sziasztok!
Ujból megkérdezném hogy van-e lehetőség feltámasztani a ATMEL 89C52-t.A programozó nem tudja törölni ERASE ERRORT-t ir ki (valószinü le van zárva ,de nem tudom hogy ezt az eszközt lehet -e ugy törölni valamilyen eljárással mint a PIC-et.) Az adatlapja szerint FLASH uc de nem értem hogy akkor miért nem tudom törölni? ![]()
Köszönöm szépen Huba a segítséged, működik mostmár tökéletesen a cucc
![]()
Kedves Puli122!
Köszönöm a válaszod! Igyekszem nem piszkálni azt a fránya beállítást. Üdv!
Sziasztok!
Elnézést ha a kérdésem kicsit offtopik lesz. String-et szeretnék küldeni a HT terminálproginak UART-on keresztül úgy, hogy minden egyes küldött string új sorba kerüljön. Az álábbi kódrészlettel csinálnám:
A gond az, hogy az újsor karakter elküldése esetén is egymás mellé íródnak a string-ek. Mit csinálok rosszul? DevC++ alatt nekem ez működött.
terminál esetén nem \r\n kell? (soremelés ha jólemlékszem) Vagy a fordítotja \n\r
Meg a másik gyanus nekem: char string [] = "String \n"; Ez elvileg létrehoz egy char tömböt. Ergo while(string[i]!='\0') elvileg mindig igaz. Kivéve ha a memoriaszemét nem lesz \0; Mivel a C nem ellenörzi az indexek érvényességét. Nemtudom egy elindexelés mennyire boritja meg az AVR-t, de nekem már sikerült vele windózt (sőt még linuxot is) a mélybe rántnai vele. Amire te gondolsz szerintem az a string osztály. ami automatikusan elrendezi a \0-t. Korrekten sztem így lehetne: char string [] = "String \n\0"; De már nagyon este van ehhez, remélem tudtam segíteni. +1: az i-nek miért a ciklus után van érték adva? Előtte megvan adva a kezdőérték?
Van egy nem nyomtatható karakter az ascii tábla elején. Már hirtelen nem tudom melyik, de sortöréses, és annak a számát simán elküldöd.
Köszi így már jó lesz! Annyi, hogy a "kocsi vissza" karaktert is hexában kellett elküldeni és akkor már működik a sortörés.
Sziasztok!
Uart-ról stringet akarok beolvasni. Az úgy jó, hogy egy while ciklust írok, ami addig tölti felfelé a stringet, amíg nem jön a sor vége(\n) karakter? Leírom az általam elképzelt kódot hozzá.
Ez így működőképes? A lényeg az lenne, hogy folyamatosan jön az adat uart-on és ezt kellene feldolgozni. Egy gps modul ontja magából a sok adatot és szűrni kellene a megfelelő infókat. Bár van egy olyan sejtésem, hogy nem fog működni.
Algoritmus nem egészen jó. Amikor kapsz egy '\n'-t akkor inkrementálod a tömb indexet így while ciklus argumentumában már az "új" üres tömb elemet hasonlítod össze a '\n'-el, nem pedig azt amiben valójában is van.
Sziasztok!
Ha külső kristályra állitottam az avr-t akkor utána hogy tudom a topi féle programozóval programozni utána? 7,3728 MHZ-es kristály. Egyszerűen nem tudom programozni!
Rakjál rá egy kristályt és menni fog.
Igen, tényleg. Ezt nem is vettem észre. Akkor a while-ban kivonok 1-et a tömb eleméből és jó is lesz. Azon gondolkozok, hogy az olvasást viszont úgy kellene kezdeni, hogy a sor elejétől, a sor vége karakterig kellene olvasni. Tehát a két sorvége karakter közötti szöveget kellene kiolvasnom. A szöveg meg a soros porton folyamatosan jön.
Kondi is van rajta? Nem lehet, hogy külső RC oszcillátorra raktad?
Külső oscillátoron van!
Kondik vannak rajta!
Igazából már kezdek magamba is bizonytalan lenni, hogy kell bekötni a kristályt? Xtal1 és xtal 2 közzé
Rajta volt már a kristály mikor átállítottad a fuse bitet külső oszcillátorra vagy először átállítottad és utána tetted rá a kristályt?
|
Bejelentkezés
Hirdetés |