Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
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   628 / 628
(#) zsolt58 válasza Jaedong hozzászólására (») Csü, 14:42 /
 
Akkor ha atmega16-ot használok aakkor kevesebb tábfesz kell neki csak anyi a különbség?
(#) TavIR-AVR válasza jimmi12 hozzászólására (») Csü, 21:08 /
 
Arduino minimum memóriaigény: 1k. ATTiny: 128 byte
Flash igény: 2...5k. Tinyben van 2k.
Arduino _NEM_ támogat más chipet: M8,168,328,32u4,1280,2560.
Azaz a Tinyre a fejlesztési irányod rossz.
(#) kapu48 válasza jimmi12 hozzászólására (») Csü, 21:26 /
 
Az Arduino nem támogatja az Attiny2313-ast!
A leg kisseb lehetőség ATMega8-as. Használd azt.

Vagy írd meg a programod Asemblerben.
(#) sucuka hozzászólása Csü, 21:27 /
 
Tisztelt fórumtársak!

Nem fejlesztek AVR-re, és egyelőre más mikrokontrollerre sem, a problémámra úgy érzem, mégis itt kaphatok segítséget:

Rendelkezésre áll egy lefordított hex-fájl, ami egy ATMEGA8-ra írt programot, és a hozzá tartozó eeprom-tartalmat "rejti". Ezt kellene felírnom egy ATMEGA8-ra, de nem a fejlesztőkörnyezetből, hanem egy XELTEK SUPERPRO programozóval, mely egy univerzális eszköz, azaz gyakorlatilag több, mint 30000-féle IC-t támogat, köztük természetesen az ATMEGA8-at is.

A problémát az okozza, hogy az említett .hex-fájl egyben tartalmazza magát a flash-részbe kerülő programot, és az eep-tartalmat is, nekem viszont a XELTEK kezelőprogramjába két külön bufferbe kell betöltenem a két memória tartalmát, majd felprogramozni azt.

Az tehát a kérdés, hogy lehetőség van-e valamilyen módon különválasztani a fájlból a két részt. Próbálok keresgélni, de persze ez időbe telik, így minden lehetséges segítséget szívesen fogadok.

Köszi!
(#) TavIR-AVR válasza sucuka hozzászólására (») 11:09 /
 
A standard HEX az a szabvány szerint nem tartalmazza az EPP-t. 2 külön állomány adott ilyenkor:
HEX - programkód
EPP - EEprom file

A lefordítást mivel csinálták? Hátha az a program saját formátumát kaptad meg...
(#) sucuka válasza TavIR-AVR hozzászólására (») 11:35 /
 
Köszi, így lehet, hogy tisztább a kép, ugyanis én csak egy fájlt kaptam, de annak ".eep" a kiterjesztése nem ".epp". Nem lehet, hogy te is azt akartad írni?

Az EEPROM-ba kerülő tartalom milyen formátumban kerül ki a fordítóból? Mert a mellékelt állomány szerint ez is HEX.
(#) tkovacs válasza sucuka hozzászólására (») 13:44 /
 
Szia Sucuka!

Igen, minden bizonnyal TavIR is .EEP kiterjesztést szeretett volna írni.
A programkód (*.hex) és az EEPROM tartalom is (*.eep) jobbára Intel hexa formátumú fájlok.
Szövegszerkesztővel kimásolhatóak belőle egyes sorok, amelyeket lehet, hogy valami offset értékkel kell betölteni a külső programozód memóriájába. Ezeket a memória címeket a programozókból meg lehet tudni amikor kiválsztjuk a programozandó eszközt. Az én WELLON programozómnál is így van.
(#) zsolt58 válasza zsolt58 hozzászólására (») 14:29 1 /
 
HAHO
Válaszolna valaki?
(#) killbill válasza zsolt58 hozzászólására (») 14:39 /
 
Nem hiszem, hogy igy barki valaszolni fog...
(#) varttina válasza zsolt58 hozzászólására (») 15:39 /
 
Mindkét AVR működik alacsonyabb tápfeszültségről is, viszont kisebb órajellel. Minden AVR adatlapján rajta van, hogy mekkora feszültség esetén mekkora a maximális órajel.
(#) Ricsi89 hozzászólása 16:17 /
 
Sziasztok!
Van egy apró problémám. Van egy órám, egy rtc-ből olvasom az időt és vfd-n jeleníti meg. Ezzel nincs is gond. Viszont automatikus nyári-téli átállást csináltam bele, de nem működik. Minden érték jó, de nem hajtódik végre. Itt a kódrészlet, hátha valaki megtalálja a gondot.
  1. void atallit(){
  2.         datum();
  3.  
  4.                 if((idoszamitas==1) && (honap==3) && (nap>=25) && (hetnap==7) && (hour==2)){
  5.                         I2C_write(0x02, 0x03);
  6.                         idoszamitas = 2;
  7.                         EEPROM_write(0x01, 2);
  8.                 }
  9.  
  10.                 if((idoszamitas==2) && (honap==10) && (nap>=25) && (hetnap==7) && (hour==3)){
  11.                         I2C_write(0x02, 0x02);
  12.                         idoszamitas = 1;
  13.                         EEPROM_write(0x01, 1);
  14.                        
  15.                 }
  16.                
  17. }
A hozzászólás módosítva: 16:18
(#) killbill válasza Ricsi89 hozzászólására (») 20:29 /
 
Ennyi kodbol nehez megmondani. A honap, nap, ora, stb. nem BCD veletlenul? Mert akkor honap == 0x10 kellene. Meg nap >= 0x25. Az idoszamitas-t felolvassa EEPROM-bol? Jo az erteke?
(#) Ricsi89 válasza killbill hozzászólására (») 20:53 /
 
Ebben lehet igazad van, hiszen bcd átalakító van hajtva az avr-ről plusz hexában van kiolvasva az érték is. Tudtam én, hogy valami apróságot nem veszek észre.
Következő: »»   628 / 628
Bejelentkezés

Belépés

Hirdetés
Frissek
2014. Okt, 31. Pé
21:33:16
Jelenleg 546 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu