Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PIC16F628 - migająca dioda

gregoryfx 19 Wrz 2009 23:13 4401 16
  • #1 19 Wrz 2009 23:13
    gregoryfx
    Poziom 9  

    Witam, posiadam programator JDM oraz układ PIC16F628. Szukałem w internecie gotowego programu aby odrazu wgrać do PIC, udało się, wgrałem fajnie miga ale chciałem żeby inaczej migała. Nie wiem w jaki programie był pisany ale jest wersja txt oraz hex, więc wkleję i może będziecie wiedzieć, w jakim programie było pisane i jak to przerobić z powrotem na hex.

    Tu jest pierwszy program:

    Code:

    include f628_20
    include jlib           

    var volatile byte CMCON at 0x1F = 0x07 -- disable port a analog functions

    var bit LED is pin_a0
    pin_a0_direction = output

    forever loop
      delay_100ms( 5 )
      LED = high
      delay_100ms( 5 )
      LED = low
    end loop

    drugi program:
    Code:

    include f628_20
    include jlib           

    var volatile byte CMCON at 0x1F = 0x07 -- disable port a analog functions

    var bit LED is pin_a0
    pin_a0_direction = output

    forever loop
      delay_10ms( 25 )
      LED = high
      delay_10ms(25 )
      LED = low
    end loop


    Chciałem zmienić wartości ale nie wiem jak wersje txt przerobić na mój PIC.

    Pozdrawiam.

    Dodałem znaczniki [code].
    [zumek]

    0 16
  • #2 19 Wrz 2009 23:50
    zumek
    Poziom 39  

    Przecież na tej samej stronie gdzie znalazłeś te źródła ( http://www.voti.nl/blink/ ) jest też dostępny kompilator o nazwie JAL. Poszukaj, poczytaj, bo nikt za Ciebie tego robił nie będzie.

    0
  • #3 20 Wrz 2009 01:20
    Wojtek75
    Poziom 23  

    Ten kompilator to stara szkoła (patrz obrazek). Jeżeli dopiero zaczynasz to raczej będzie ciężko się w to wgryźć.

    PIC16F628 - migająca dioda

    0
  • #4 20 Wrz 2009 11:02
    gregoryfx
    Poziom 9  

    Poszukuję takiego programu który działa na pewno i będzie działać po kompilacji programem HI-TIDE. Może, ktoś z forum napisze mi taki mały programik w języku C. Ten program będzie wgrany do PIC 16F628, będzie sterował jedną diodą, która będzie migać i żebym później mógł sobie zmienić wartość żeby szybciej migała albo krótko itp.
    Szukam już kilka dni i nie wiem jak to napisać żeby działo. Bardzo proszę o taki program.

    Czy ktoś mi pomoże ?

    Bardzo proszę o pomoc, pozdrawiam serdecznie.

    0
  • #5 20 Wrz 2009 12:12
    atom1477
    Poziom 43  

    gregoryfx napisał:
    Nie wiem w jaki programie był pisany ale jest wersja txt oraz hex, więc wkleję i może będziecie wiedzieć, w jakim programie było pisane i jak to przerobić z powrotem na hex.


    Z powrotem to może być na TXT. Na HEX to jest normalny kierunek.



    gregoryfx napisał:
    Może, ktoś z forum napisze mi taki mały programik w języku C


    Przecież już masz program w C. Napisałeś o tym w swoim poprzednim (zaśmiecającym forum) temacie.

    0
  • #6 20 Wrz 2009 12:29
    gregoryfx
    Poziom 9  

    Niestety okazało się że to nie języku języku C tylko w jakimś innym języku, w takim jak wyżej napisałem. Bardzo proszę o napisanie prostego programu w C gdzie będzie migać dioda.

    Bardzo proszę o pomoc w napisaniu.

    0
  • #7 20 Wrz 2009 12:44
    viayner
    Poziom 34  

    Witam,
    zajzyj na strone www.mikroe.com
    tam maja darmowe kompilatory basica, pascala, C itd, darmowe oznacza ze dlugosc generowanego kodu hex wynosi 2kb co do migania diodami w zupelnosci wystarcza.
    W helpie/examples masz gotowy przyklad jak pomigac diodami i jak to zmieniac.
    Pozdrawiam
    PS ten kod co podales na poczatku jest bardzo zblizony do mikroC. Po zapoznaniu sie z mikroC bez problemu "przerobisz" ga na swoje potrzeby.

    W linku, poprawiłem "mikore" na "mikroe".
    [zumek]

    0
  • #8 20 Wrz 2009 14:58
    gregoryfx
    Poziom 9  

    Pobrałem mikroC PRO for PIC i szukałem examples, tak jak Pan mi napisał ale nie znalazłem przykładowych programów odnośnie migających diod.
    PS odnośnie tego kodu który podałem na początku, to stworzyłem projekt mcppi, wybrałem PIC16F628 i wkleiłem kod, ale chyba jest coś nie tak dlatego że jak klikam na Build and Program, to wyskakuję zaznaczenie błędnego kodu. Mógłby Pan sprawdzić u siebie czy ten program działa ?

    Pozdrawiam i czekam na odpowiedź.

    0
  • #9 20 Wrz 2009 15:32
    Mat_91
    Poziom 25  

    Kolego gregoryfx! Proszę przeczytać jeszcze raz dokładnie to co napisał viayner:

    viayner napisał:

    PS ten kod co podales na poczatku jest bardzo zblizony do mikroC. Po zapoznaniu sie z mikroC bez problemu "przerobisz" ga na swoje potrzeby.


    W szczególności to co jest pogrubionym tekstem, a później zastanów sie dla czego Ci nie działa po wklejeniu i probie kompilacji w mikroC... Okaż trochę własnej inicjatywy bo na teksty w stylu "szukałem ale nie znalazłem" na tym forum jeszcze chyba nikt nie otrzymał pomocy a tym bardziej gotowca.

    Napisz swój kod w C (jeśli nie znasz pora na nauke), jak nie zadziała to wtedy będziemy pomagać.

    EDIT: Coś słabo szukałeś tych przykładów.

    0
  • #10 20 Wrz 2009 17:10
    gregoryfx
    Poziom 9  

    Ludzie kochani, ja nie chce gotowca hex, tylko w wersji tekstową, aby zmieniając parametry czasowe mógł po prostu zmieniać czas migania np. diody.
    Jeżeli ktoś chce mi pomóc to bardzo proszę.

    Pozdrawiam.

    0
  • #11 20 Wrz 2009 17:19
    Mat_91
    Poziom 25  

    No ileż można... gotowiec to właśnie twoja "forma tekstowa" :|

    Zaglądnąłeś w ogóle do załącznika który Ci podałem?

    plik "LedBlinking.mbas"

    Code:

    ' *
    ' * Project name:
    '     LED_Blinking (Simple "Hello World" project)
    ' * Copyright:
    '     (c) Mikroelektronika, 2009.
    ' * Revision History:
    '     20080930:
    '       - initial release
    ' * Description:
    '     This is a simple "Hello World" project. It turns on/off diodes connected to
    '     PORTA, PORTB, PORTC and PORTD.
    ' * Test configuration:
    '     MCU:             PIC16F887
    '                      http://ww1.microchip.com/downloads/en/DeviceDoc/41291F.pdf#page=123
    '     Dev.Board:       EasyPIC5
    '                      http://www.mikroe.com/en/tools/easypic5/
    '     Oscillator:      HS, 08.0000 MHz
    '     Ext. Modules:    -
    '     SW:              mikroBasic  PRO for PIC
    '                      http://www.mikroe.com/en/compilers/mikrobasic/pro/pic/
    ' * NOTES:
    '     - Make sure you turn ON the PORT LEDs at SW6. (board specific)
    ' *

    program LED_Blinking

    main:
      TRISA = 0x00       ' set direction to be output
      TRISB = 0x00       ' set direction to be output
      TRISC = 0x00       ' set direction to be output
      TRISD = 0x00       ' set direction to be output

      While TRUE
        PORTA = 0x00     ' Turn OFF diodes on PORTA
        PORTB = 0x00     ' Turn OFF diodes on PORTB
        PORTC = 0x00     ' Turn OFF diodes on PORTC
        PORTD = 0x00     ' Turn OFF diodes on PORTD
        Delay_ms(1000)   ' 1 second delay

        PORTA = 0xFF     ' Turn ON diodes on PORTA
        PORTB = 0xFF     ' Turn ON diodes on PORTB
        PORTC = 0xFF     ' Turn ON diodes on PORTC
        PORTD = 0xFF     ' Turn ON diodes on PORTD
        Delay_ms(1000)   ' 1 second delay
      wend               ' Endless loop
    end.


    Jeżeli znasz przeznaczenie funkcji "Delay_ms()" to masz rozwiązanie twojego problemu:|

    0
  • #12 20 Wrz 2009 18:06
    gregoryfx
    Poziom 9  

    Tworze nowy projekt pod PIC16F628A i wklejam twój kod, wciskam przycisk Program, Reload HEX i save.

    Oto zdjęcia, może mam coś jeszcze zmienić.
    PIC16F628 - migająca dioda
    PIC16F628 - migająca dioda

    Wgrywam do PIC programem WinPIC, ale dioda nie miga, podłączałem pod inne nogi też.

    Pozdrawiam.

    0
  • #13 20 Wrz 2009 19:36
    Wojtek75
    Poziom 23  

    gregoryfx napisał:
    Tworze nowy projekt pod PIC16F628A i wklejam twój kod, wciskam przycisk Program, Reload HEX i save.


    I to wszystko???

    Przecież w ten sposób nawet nie programujesz uC.

    Kompilujesz źródło wsad wgrywasz do bufora programu przy pomocy "Load" a następnie wgrywasz go do uC przy pomocy "Write"

    O bitach konfiguracyjnych coś słyszałeś? Chyba należy się spodziewać, że dalej będą problemy.

    0
  • #14 20 Wrz 2009 22:32
    gregoryfx
    Poziom 9  

    Wojtek75 - przeczytaj dokładnie post... Napisałem że wgrywam za pomocą WinPic do bufora PIC, pokazuję że zapis i weryfikacja powiodła się pomyślnie ale dioda nie świeci.
    Jak widzę twój post nic nie wniósł dla mojej pomocy.

    0
  • #15 20 Wrz 2009 23:36
    Wojtek75
    Poziom 23  

    Ok. w załączniku masz wsad (skompilowany jal'em pierwszy kod z twojego pierwszego postu). Dioda powinna ci mrugać z częstotliwością 1Hz.

    info:

    Code:
    ; compiler          : jal 00.04-50
    
    ; date              : 20-Sep-2009 23:17:23
    ; main source       : led
    ; command line      : -rh led.txt
    ; target  chip      : 16f628
    ;         cpu       : pic 14
    ;         clock     : 20000000
    ; input   files     : 11
    ;         lines     : 2085
    ;         chars     : 53802
    ; compilation nodes : 12179
    ;             stack : 26Kb
    ;              heap : 4108Kb
    ;           seconds : 0.165 (12648 lines/second)
    ; output       code :   81
    ;              page :    0 (0.0%)
    ;              bank :    0 (0.0%)
    ;         page+bank :    0 (0.0%)
    ;              file :   11
    ;              stack:    1 (1,0,0)

    0
  • #16 21 Wrz 2009 20:49
    viayner
    Poziom 34  

    Witam,
    Panowie a czy uwzgledniliscie to z jakim kwarcem czy oscylatorem wewnetrznym ten PIC ma pracowac, ogolnie mowiac chodzi o konfiguracje PIC'a jak ona bedzie bledna to nic nawet najlepszy kod nie "odpali".
    - gregoryfx - jak wgrywasz winpic'em hex'a do PICa to podejzyj konfiguracje i porownaj z tym jaka ma byc w twoim ukladzie, czy to sie wogole zgadza, jaki masz kwarc, co i jak jest podpiete do MCLR itp.
    Problem jaki opisujesz zdazal mi sie wielokrotnie jak przesiadalem sie na inna kostke PICa zapominajac o zmianie konfiguracji, dobry i sprawdzony kod a nie chodzi, glowna przyczyna jest rodzaj ustawionego oscylatora.
    W MikroC to bedzie w menu Project/EditProject.
    Pozdrawiam

    0
  • #17 20 Paź 2009 22:01
    marek-c
    Poziom 18  

    Ano właśnie! I dlatego Microchiop zaleca ustawianie konfiguracji w kodzie programu! Proste i skuteczne.
    Tylko ten opis 'po czesku' toż to panie szok!

    0