www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

AtMega 32 Problem

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
PC_Master
Član
Član



Pridružen-a: Pon 17 Mar 2008 20:10
Prispevkov: 319
Aktiv.: 1.52
Kraj: Domžale , Blizu Ljubljane , Poštna 1230

PrispevekObjavljeno: Čet Jul 10, 2008 3:42 pm    Naslov sporočila:  AtMega 32 Problem Odgovori s citatom

Zivijo. Nekako mi je ratalo da je AtMega 32 crknil. Namreč , če nimam externega kristala , mi čipa sploh noče programirati/napiše da ima napačen signature , če pa dam 16 Mhz kristal in dva 22p kondenzatorja , pa lahko nekako programiram , ampak koda ne dela dobro...

Uporabljam WinAvr. Bi se dalo čip erasati in potem naštimati fuse bite preko kode.( V C kodi? )

Aja ko sem rekel da koda čudno dela , Delay sploh ne dela. Sem probal spremeniti od Delay(20) do Delay(20000).

Pa še koda projekta :

Koda:

#include <avr/io.h>


/// Typedefs //////////
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

/// Defines ///////////
#define forever         117
#define LEDOFF          PORTB |= (1<<4)
#define LEDON           PORTB &= ~(1<<4)

/// Prototypes ////////
void InitPorts (void);
void Delay (u32 count);

int main(void)
{
    InitPorts();

    while (forever)
    {
        LEDON; Delay(20000);
        LEDOFF; Delay(20000);
    }
}

void InitPorts(void)
{
    DDRB |= 1<<DDB4;
}

void Delay(u32 count)
{
    while(count--);
}
 


Exclamation Problem popravil , nisem imel kondenzatorja za glajenje napetosti Exclamation


Nazadnje urejal/a PC_Master Čet Jul 10, 2008 9:33 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Čet Jul 10, 2008 4:31 pm    Naslov sporočila:   Odgovori s citatom

Fuse bite se lahko spreminja samo s programatorjem, znotraj kode jih ne moreš.

Mislim da je prevajalnik tvojo delay funkcijo optimiral in jo odrezal, ker nima vpliva na spremenljivke zunaj te funkcije. Spremeni direktivo za optimizacijo.

_________________
lp, Klemen
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
PC_Master
Član
Član



Pridružen-a: Pon 17 Mar 2008 20:10
Prispevkov: 319
Aktiv.: 1.52
Kraj: Domžale , Blizu Ljubljane , Poštna 1230

PrispevekObjavljeno: Čet Jul 10, 2008 4:48 pm    Naslov sporočila:   Odgovori s citatom

Ne mislim ,da bi fuse bite definiral v kodi , tako da mi nebi bilo treba kljukati ali to delati preko komande.

Sicer pa , če dam med XTAL1 in XTAL2 kristal ki je bil definiran v makefilu , potem LED dioda samo sveti , če pa dam drugi kristal , potem led dioda "šteka" kot bi imel neko random spremenlijko za LED , če je pa brez kristala , pa LED sploh ne sveti.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group