..ukryte w kodzie BASCOM'A

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

..ukryte w kodzie BASCOM'A

Post autor: seg » 30 sie 2007, 23:02

..nie zajmujmy się całością, a tym, że na wyprowadzeniu nr 1 ATTINY26 powinien być generowany przebieg o częstotliwośći 100Hz i czasie trwania stanu niskiego 70us. Chcę zmienić te parametry - gdzie to jest??

Kod: Zaznacz cały

$regfile = "AT26DEF.DAT"
$crystal = 10000000

'ustaw port b3, b2 jako wyjścia
 Ddrb = &B00001111
'ustaw stan wysoki na b3, b2
 Portb = &B00001111

Pllcsr = &B00000010
Pllcsr = &B00000111
Ocr1c = 255
'wypełnienie
Ocr1a = 128
'wypełnienie
Ocr1b = 128
'1k
Osccal = 119
'1k
Tccr1b = 72

'włączenie PWM
Tccr1a = &B00010001


 Const _on = 1
 Const _off = 0


Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Pina.3 = Input
Config Pina.4 = Input
Config Pina.5 = Input
Config Pina.6 = Input
Config Pina.7 = Input


Porta = 255


Config Pinb.0 = Output
Config Pinb.1 = Output



Pulse Alias Portb.0
Noise Alias Portb.1



Dim Xdelay As Byte
Dim M_xdelay As Byte
Dim Sustain As Byte
Dim M_sustain As Byte


If Pina.0 = 0 Then
Xdelay.0 = 1
Else
Xdelay.0 = 0
End If


If Pina.1 = 0 Then
Xdelay.1 = 1
Else
 Xdelay.1 = 0
End If


If Pina.2 = 0 Then
 Xdelay.2 = 1
Else
 Xdelay.2 = 0
End If


If Pina.3 = 0 Then
 Xdelay.3 = 1
Else
 Xdelay.3 = 0
End If


 If Pina.4 = 0 Then
 Sustain.0 = 1
Else
 Sustain.0 = 0
End If


If Pina.5 = 0 Then
Sustain.1 = 1
Else
 Sustain.1 = 0
End If


 If Pina.6 = 0 Then
Sustain.2 = 1
Else
Sustain.2 = 0
End If


If Pina.7 = 0 Then
Sustain.3 = 1
Else
Sustain.3 = 0
End If


Select Case Xdelay
      Case 0 :
            Xdelay = 65                                     '26
            M_xdelay = 38                                   '26
      Case 1 :
            Xdelay = 68                                     '27
            M_xdelay = 35                                   '27
      Case 2 :
            Xdelay = 70                                     '28
            M_xdelay = 33                                   '28
      Case 3 :
            Xdelay = 73                                     '29
            M_xdelay = 30                                   '29
      Case 4 :
            Xdelay = 75                                     '30
            M_xdelay = 28                                   '30
      Case 5 :
            Xdelay = 78                                     '31
            M_xdelay = 25                                   '31
      Case 6 :
            Xdelay = 80                                     '32
            M_xdelay = 23                                   '32
      Case 7 :
            Xdelay = 83                                     '33
            M_xdelay = 20                                   '33
      Case 8 :
            Xdelay = 85                                     '34
            M_xdelay = 18                                   '34
      Case 9 :
            Xdelay = 88                                     '35
            M_xdelay = 15                                   '35
      Case 10 :
            Xdelay = 90                                     '36
            M_xdelay = 13                                   '36
      Case 11 :
            Xdelay = 93                                     '37
            M_xdelay = 10                                   '37
      Case 12 :
            Xdelay = 95                                     '38
            M_xdelay = 8                                    '38
      Case 13 :
            Xdelay = 98                                     '39
            M_xdelay = 5                                    '39
      Case 14 :
            Xdelay = 100                                    '40
            M_xdelay = 3                                    '40
      Case 15 :
            Xdelay = 103                                    '41
            M_xdelay = 0                                    '41
End Select


Select Case Sustain
      Case 0 :
            Sustain = 63                                    '25
            M_sustain = 188                                 '25
      Case 1 :
            Sustain = 75                                    '30
            M_sustain = 175                                 '30
      Case 2 :
            Sustain = 88                                    '35
            M_sustain = 163                                 '35
      Case 3 :
            Sustain = 100                                   '40
            M_sustain = 150                                 '40
      Case 4 :
            Sustain = 113                                   '45
            M_sustain = 138                                 '45
      Case 5 :
            Sustain = 125                                   '50
            M_sustain = 125                                 '50
      Case 6 :
            Sustain = 138                                   '55
            M_sustain = 113                                 '55
      Case 7 :
            Sustain = 150                                   '60
            M_sustain = 100                                 '60
      Case 8 :
            Sustain = 163                                   '65
            M_sustain = 88                                  '65
      Case 9 :
            Sustain = 175                                   '70
            M_sustain = 75                                  '70
      Case 10 :
            Sustain = 188                                   '75
            M_sustain = 63                                  '75
      Case 11 :
            Sustain = 200                                   '80
            M_sustain = 50                                  '80
      Case 12 :
            Sustain = 213                                   '85
            M_sustain = 38                                  '85
      Case 13 :
            Sustain = 255                                   '90
            M_sustain = 25                                  '90
      Case 14 :
            Sustain = 238                                   '95
            M_sustain = 13                                  '95
      Case 15 :
            Sustain = 250                                   '100
            M_sustain = 0                                   '100
End Select


Pulse = 1
Noise = 0




'GŁÓWNA PĘTLA PROGRAMU
Do
 Noise = _on
 Waitus 1
 Pulse = _off
 Waitus 70
 Pulse = _on


$asm
lds r30 , {Xdelay}                                          '41
Giga1:
dec r30
cpi r30,0
brne Giga1
$end Asm


Noise = _off


$asm
lds r30 , {Sustain}                                         '100
Giga2:
dec r30
cpi r30,0
brne Giga2
$end Asm


Noise = _on


$asm
lds r30 , {M_Xdelay}                                        '41
Giga3:
dec r30
cpi r30,0
brne Giga3
$end Asm


$asm
lds r30 , {M_Sustain}                                       '100
Giga4:
dec r30
cpi r30,0
brne Giga4
$end Asm


Waitus 9788
Loop


End
..tu jest podejrzewam ukryte owe 70us..

Kod: Zaznacz cały

Do 
 Noise = _on 
 Waitus 1 
 Pulse = _off 
 Waitus 70       '<<<------
 Pulse = _on
..czy wystarczy to np zmienić na 100us /w jaki sposób?/ i będzie też ok jako całość programu?

..a reszta w sensie 100Hz gdzie się ukrywa /zaznaczam, że chodzi o nóżkę nr 1, bo na "dwójce" też jest 100Hz/

[ Dodano: 2007-08-31, 23:10 ]
..dlaczego nikt mi nie pomoże? Czy to Was przerasta, czy też uważacie to za łamanie praw autorskich? To proste pytanie dla kogoś, kto ma o tym pojęcie. Chcę poprostu poddać tunningowi marny projekt z Nowego Elektronika na który wydałem masę pieniędzy i poświęciłem mnóstwo czasu. Załuję podjęcia się tego projektu bo jest daremny ale resztką chęci wierzę w możliwość wskrzeszenia tego trupa. Ulepszyłem go spzętowo a teraz chcę programowo - pomóżcie proszę.

ODPOWIEDZ