Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

atmega16A - Zanik napięcia po dodaniu wskaźnika eeprom

KryQ 19 Feb 2013 21:06 1020 4
Testo
  • #1
    KryQ
    Level 9  
    Witam otóż mam chyba prosty ale nieprzeskakiwany dla mnie problem otóż w ramach nauki C i obsługi Atmegi napisałem sobie prosty licznik binarny na jednym bajcie (8 diód). Które podłączone są do jednego rzedu. (Dokładnie PA0)

    I wszystko działało by pięknie i cudownie jednak chciałbym by program zapamiętywał ost znaną nam liczbę do czego przyda nam się pamieć eeprom tylko że po inicjacji wskaźnika napięcie w szeregu PA zanika i ledy nie świecą.

    Czy ktoś byłby wstanie wytłumaczyć ten fenomen?

    Code: c
    Log in, to see the code


    Prosiłbym o proste odpowiedzi dopiero raczkuje :)
    Z góry dzięki KryQ
  • Testo
  • #2
    BlueDraco
    MCUs specialist
    Zacznij od zmiany tytułu, bo Twój post nie dotyczy procesora M16 firmy Renesas, a ATMega firmy Atmel. Co za pomysł, by nazwać dwie zmienne tak, by ich nazwy różniły się wielkością jednej litery...
    Co wypisuje kompilator przy kompilacji programu? Nie masz żadnych ostrzeżeń?

    A, i kod włączaj do wiadomości z tagiem Syntax C, a nie podawaj znikających linków.
  • Testo
  • #3
    KryQ
    Level 9  
    ok włączenie kodu poprawione a kompilator pluje tylko błędem o braku zdefiniowania taktowania procesora.
    a co do różnic nazewnictwa zmiennej nawet nie chodzi o nazwę bo wskaźnik nie jest wykorzystany tylko o to ze po jego wstawieniu ginie mi napięcie.
  • #4
    BlueDraco
    MCUs specialist
    Nie ginie Ci napięcie i nie masz w programie żadnego wskaźnika. Zdefiniuj częstotliwość, przemianuj zmienną, pokaż kod i raport kompilacji i przyjrzyj się komunikatom z programowania mikrokontrolera - coś dziwnie to wygląda.
  • #5
    KryQ
    Level 9  
    rzeczywiście avrdude pluje błędem przy programowaniu tylko w jaki spośób jestem poza zasięgiem?

    Code:

    avrdude: Version 5.10, compiled on Mar 23 2010 at 15:03:00
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2009 Joerg Wunsch
     
             System wide configuration file is "/etc/avrdude.conf"
             User configuration file is "/home/kryq/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping
     
             Using Port                    : /dev/ttyACM0
             Using Programmer              : avrisp
             Overriding Baud Rate          : 19200
             AVR Part                      : ATMEGA16
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PA0
             RESET disposition             : dedicated
             RETRY pulse                   : SCK
             serial program mode           : yes
             parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             ByteDelay                     : 0
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :
     
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom         4    10   128    0 no        512    4      0  9000  9000 0xff 0xff
               flash         33     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
               lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
               calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
     
             Programmer Type : STK500
             Description     : Atmel AVR ISP
             Hardware Version: 2
             Firmware Version: 1.18
             Topcard         : Unknown
             Vtarget         : 0.0 V
             Varef           : 0.0 V
             Oscillator      : Off
             SCK period      : 0.1 us
     
    avrdude: AVR device initialized and ready to accept instructions
     
    Reading | ################################################## | 100% 0.06s
     
    avrdude: Device signature = 0x1e9403
    avrdude: safemode: lfuse reads as E1
    avrdude: safemode: hfuse reads as 99
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "/home/kryq/atmel/blink.hex"
    avrdude: input file /home/kryq/atmel/blink.hex auto detected as Intel Hex
    avrdude: ERROR: address 0x810001 out of range at line 15 of /home/kryq/atmel/blink.hex
    avrdude: write to file '/home/kryq/atmel/blink.hex' failed
     
    avrdude: safemode: lfuse reads as E1
    avrdude: safemode: hfuse reads as 99
    avrdude: safemode: Fuses OK
     
    avrdude done.  Thank you.


    blink.hex
    Code:

    :100000000C942A000C9447000C9447000C94470071
    :100010000C9447000C9447000C9447000C94470044
    :100020000C9447000C9447000C9447000C94470034
    :100030000C9447000C9447000C9447000C94470024
    :100040000C9447000C9447000C9447000C94470014
    :100050000C94470011241FBECFE5D4E0DEBFCDBF16
    :1000600010E0A0E6B0E0ECECF0E002C005900D92EC
    :10007000A036B107D9F710E0A0E6B0E001C01D92AC
    :10008000A036B107E1F70E9449000C9464000C947B
    :1000900000008FEF8ABB17BA83E088BB21E030E015
    :1000A00040E25EE46FEFB0990AC0CA010197F1F730
    :1000B000B09BFECF2F5F3F4FCA010197F1F72BBBDB
    :0C00C000B199F1CF6BBBEFCFF894FFCFEC
    :02000004008179
    :0100000000FF
    :00000001FF


    Dodano po 50 [minuty]:

    ok problem rozwiązany przy konwersji pliku na hex nalezy dodać parametr "-R .eeprom"