f
Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 548

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 549

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/page_header.php on line 343
And-Tech :: Zobacz temat - Wyswietlacz graficzny

Strona korzysta z plików cookie w celu realizacji usług zgodnie z Politykš prywatnoœci.

Możesz okreœlić warunki przechowywania lub dostępu do cookie w Twojej przeglšdarce lub konfiguracji usługi.

And-Tech Strona Główna And-Tech
Forum firmy And-Tech

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum  DownloadDownload

Poprzedni temat «» Następny temat
Wyswietlacz graficzny
Autor Wiadomość
grzeniu 73 

Dołączył: 11 Mar 2012
Posty: 39
Skąd: Dania
Wysłany: Sro Lis 21, 2012 5:44 pm   Wyswietlacz graficzny

Witam!
Zaczelem sie bawić wys.graficznym. Napisałem mały programik do wyświetlania tem. i rysowanie wykresu. Wszystko bylo dobrze dopóki nie dodałem timera do odliczania czasu. mianowicie jedna petla For powoduje,ze na wyświetlaczu rysują sie przypadkowe linie na całym lcd. Wpisałem teraz ta pętle do przerwania razem z odczytem tem. i zatrzymuje timer na ten czas i jest ok. Co zle robię,ze ta pętla For nie działa w głównej pętli. Dopóki nie bylo timera to działała normalnie w petli Do ,Loop
Kod:
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6



'Config Pinb.1 = Input                                       'linia

'Config Pinb.2 = Input


  Cls
  Cursor Off

  Config 1wire = Pind.4

Dim Lsb As Byte , Msb As Byte , T As Single , S As String * 4

   Config Timer0 = Timer , Prescale = 256
     Enable Timer0 : On Timer0 Prztimer0


'S1 Alias Pinb.1                                             'przypisanie do linii PB1 aliasu S1
'S2 Alias Pinb.2                                             'przypisanie do linii PB2 aliasu S2
'Set Portb.1                                                 'wlaczenie rezystora podciagajacego linii PB1
'Set Portb.2                                                 'wlaczenie rezystora podciagajacego linii PB2
   Dim Kol As Byte
    Dim A As Byte
     Dim X As Byte
     X = 14
      Dim Y As Byte
       Dim B As Byte
         Dim C As Byte
           Dim F As Byte
   Dim I As Byte
    Dim Dziel As Word
     Dim F500ms As Byte
      Dim F4ms As Byte
       Dim Tem As Byte
        Dim 2sek As Word
         Dim 1sek As Byte
'*****************************************************************


      Line(14 , 14) -(14 , 117) , 1
      Line(15 , 14) -(15 , 117) , 1
      Line(14 , 117) -(220 , 117) , 1
      Line(13 , 116) -(220 , 116) , 1
        For I = 116 To 11 Step -10
         Pset 13 , I , 1
          Next I
       For I = 15 To 220 Step 10
        Pset I , 118 , 1
          Next I
        For I = 15 To 220 Step 5
         Pset I , 66 , 1
         Next I
         Locate 9 , 1
         Lcd "0"

          Enable Interrupts
 '**********************************************************8
   Do

    If F4ms = 1 Then
      F4ms = 0
       End If

  If Tem = 1 Then
     Tem = 0
     Incr 1sek
     If 1sek = 2 Then
     1sek = 0
   Gosub Temperatura
         Locate 1 , 3
   S = Fusing(t , "#.#")
    S = Format(s , "+0000")
      Lcd S
      End If
       End If

          A = T
   Locate 1 , 20
     Lcd A
     Y = 66
      Y = Y - A

     If F500ms = 1 Then
       F500ms = 0
       Incr 2sek
      If 2sek = 2 Then
        2sek = 0

     Incr X
      Pset X , Y , 1
       End If
        End If

   If X = 220 Then X = 15
    Locate 1 , 26
    Lcd X



   Loop
    End

 Prztimer0:
   Timer0 = 6
    Set F4ms
     Incr Dziel
   If Dziel = 125 Then
     Dziel = 0
      Set F500ms
       Set Tem
      End If
 Return

 Temperatura:
 Disable Interrupts

    1wreset
     1wwrite &HCC
      1wwrite &H44
   'Waitms 750
      1wreset
       1wwrite &HCC
        1wwrite &HBE
     Lsb = 1wread()
      Msb = 1wread()

     T = Msb * 256
     T = T + Lsb
     T = T / 16

      If Msb.7 = 1 Then T = T - 4096

        F = 116
       F = F - A
        For I = 116 To 67 Step -1                           'petla rysowania slupka o dlugosci zaleznej od wartosci odczytanej z A/C
         If I >= F Then                                     'jesli wartosc I wieksza lub rowna, to
          Kol = 1                                           'zapis wartosci 1 do zmiennej kol (piksele beda wyswietlane)
       Else                                                 'w przeciwnym razie
         Kol = 0                                            'zapis wartosci 0 do zmiennej kol (piksele beda wymazywane)
          End If
          Line(16 , I) -(26 , I) , Kol                      'wyswietlenie lub kasowanie w zaleznosci od kol linii slupka
             Next I


       Enable Interrupts


Return
[/code]

pobawiłem sie trochę i te problemy stwarza komenda "line" Mianowicie w petli glownej nie mogę wyświetlić żadnej Lini.Nikt nie pomaga to sobie sam pomoglem :) Na poczatku trzeba bylo wstawic
Kod:
$hwstack = 128
$swstack = 128
$framesize = 128
Pozdrawiam!
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group