logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega128][C] roblem z symulacją w Proteusie

sqrd 28 Cze 2009 11:01 1124 4
REKLAMA
  • #1 6713006
    sqrd
    Poziom 11  
    Witam

    Uczę się dopiero programować mikrokontrolerów. Naczytałem się sporo tutriali i przejrzałem od tygodnia sporo topiców na forum. Niestety muszę zacząć od nauki na atmega128 przez projekt na studiach :| Mój program jest bardziej rozbudowany niż ten teraz ale nie mogę sobie poradzić z symulacją nawet najprostszego. Robię najprostszy program żeby symulować go na PROTEUSIE 7.4

    Najpierw kod:
    
    #define F_CPU 14.7456E6 //delay.h
    
    #include "C:\WinAVR\avr\include\avr\io.h"
    #include "C:\WinAVR\avr\include\avr\delay.h"
    #include "C:\WinAVR\avr\include\stdio.h"
    #include "lcd.h"
    
    int main(void){ 
    
    DDRA=0xFF;
    
    lcd_init(LCD_FUNCTION_4BIT_2LINES); 
    lcd_init(LCD_DISP_ON);
    lcd_puts("test"); 
    
    while(1){ 
    
    } 
    
    
    return 0; 
    }
    


    Plik lcd.h to biblioteka z
    http://homepage.hispeed.ch/peterfleury/index.html

    I co tu ukrywać... Podczas symulacji nie działa... Podświetla się wyświetlacz ale nic więcej. Załączam jeszcze plik hex z avr studio kompilowany przez winavr (wer 2009-03-13)
  • REKLAMA
  • #2 6713015
    snow
    Poziom 31  
    Jak dla mnie ten program jest kiepski, nawet Watchdoga nie umie poprawnie zasymulować. Lepiej już zmontuj sobie to co chcesz tam symulować i rób na "żywym" układzie. Będzie szybciej i pewniej bo się okaże nagle że w symulatorze coś nie działa a w rzeczywistości bez problemu - lub na odwrót.
  • REKLAMA
  • #3 6713075
    sqrd
    Poziom 11  
    Nie będę ukrywał że mam troszkę mało czasu i w wakacje OK mogę to zrobić ale jak to każdy student i jak ja, obudziłem się dość późno. Nie martwi mnie napisanie tego programu jak jego za symulowanie... Dlatego czy ktoś ma jakiś pomysł jak odpalić taki układ? a ten układ specjalnie odpowiada układowi realnemu u mnie na studiach. Tylko problem polega na tym ze ciut mało czasu mam na próby na tamtym układzie. Rzadko prowadzący jest.
    Dlatego czy ktoś ma jakiś pomysł?
  • REKLAMA
  • Pomocny post
    #4 6713115
    KwoiteK
    Poziom 16  
    Witam

    Żeby zadziałało to musisz najpierw zmienić częstotliwość taktowania procka na 4MHz (tak jak bibliotece lcd). Poza tym schemat jest niepoprawny. Linia Enable musi być podłączona do D6, linia R/W do D5 oraz RS do D4 (tak jak na schemacie ze strony z biblioteka lcd).

    Po tych zmianach pojawił się ładny napis "test" :)

    PS. Proteus możne nie jest doskonały, ale znakomity do szukania błędów jeśli akurat nie ma oscyloskopu lub analizatora stanów pod ręka. Zgadzam się z przedmówcą. Należy ostrożnie podchodzić to tego typu programów nawet jeśli w większości przypadków "mają" rację.

    Pozdrawiam
  • #5 6713255
    sqrd
    Poziom 11  
    Działa dzięki :D
REKLAMA