Экспериментирую с 8-ногим пиком PIC12C508A

8-битные микроконтроллеры PICmicro (ПИКи) от Microchip и совместимые, а также 16-битные PIC24 и 32-битные PIC32

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

О - оказывается Бенчофф заметил мой практически пустой проект несколько дней назад и написал целый абзац :o

http://hackaday.com/2016/12/11/hackaday-links-november-11-2016/

P.S. Вот чего подумалось - правила этого килобайтного соревнования допускают использование любого количества чипов, если в них используется одна и та же прошивка размером до 1 килобайта - вот я и думаю, а не соединить ли вместе несколько PIC12x? Вот если бы можно было бы 4 пика запустить с разнесением фазы клока на 1/4, то теоретически можно было бы вместо 48 графических элементов в строке получить 192 :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

Генерируем кадр NTSC на 4 МГц старом пике :)

 PIC12-T1.ASM

Code: Select all

 processor pic12c508a
 radix dec
 include "p12c50X.inc"
 __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

Seven EQU 0x07 ; constant 7
LineN EQU 0x08 ; line counter
TempN EQU 0x09 ; temporary counter

 movwf OSCCAL ; store factory calibration value
 movlw 7
 movwf Seven
 goto loop

; call ; 2/2 (FRAME SYNC)
Line_:
 nop ; 1/3
 nop ; 1/4

 ; blank 48 instructions
 clrf GPIO ; 1/5
 movlw 15 ; 1/6
 movwf TempN ; 1/7
Line_loop: ; 15*3-1=44/51
 decfsz TempN,f ; (1/1)
 goto Line_loop ; (2/3)
 nop ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x18 ; 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x08 ; 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line0:
 nop ; 1/3
 nop ; 1/4

 ; blank 48 instructions
 clrf GPIO ; 1/5
 movlw 15 ; 1/6
 movwf TempN ; 1/7
Line0loop: ; 15*3-1=44/51
 decfsz TempN,f ; (1/1)
 goto Line0loop ; (2/3)
 nop ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line1:
 nop ; 1/3
 nop ; 1/4

 ; video 48 instructions
 movlw 1 ; 1/5
 movwf GPIO ; 1/6
 comf GPIO,f ; 1/7
 comf GPIO,f ; 1/8
 comf GPIO,f ; 1/9
 comf GPIO,f ; 1/10
 comf GPIO,f ; 1/11
 comf GPIO,f ; 1/12
 comf GPIO,f ; 1/13
 comf GPIO,f ; 1/14
 comf GPIO,f ; 1/15
 comf GPIO,f ; 1/16
 comf GPIO,f ; 1/17
 comf GPIO,f ; 1/18
 comf GPIO,f ; 1/19
 comf GPIO,f ; 1/20
 comf GPIO,f ; 1/21
 comf GPIO,f ; 1/22
 comf GPIO,f ; 1/23
 comf GPIO,f ; 1/24
 comf GPIO,f ; 1/25
 comf GPIO,f ; 1/26
 comf GPIO,f ; 1/27
 comf GPIO,f ; 1/28
 comf GPIO,f ; 1/29
 comf GPIO,f ; 1/30
 comf GPIO,f ; 1/31
 comf GPIO,f ; 1/32
 comf GPIO,f ; 1/33
 comf GPIO,f ; 1/34
 comf GPIO,f ; 1/35
 comf GPIO,f ; 1/36
 comf GPIO,f ; 1/37
 comf GPIO,f ; 1/38
 comf GPIO,f ; 1/39
 comf GPIO,f ; 1/40
 comf GPIO,f ; 1/41
 comf GPIO,f ; 1/42
 comf GPIO,f ; 1/43
 comf GPIO,f ; 1/44
 comf GPIO,f ; 1/45
 comf GPIO,f ; 1/46
 comf GPIO,f ; 1/47
 comf GPIO,f ; 1/48
 comf GPIO,f ; 1/49
 comf GPIO,f ; 1/50
 comf GPIO,f ; 1/51
 comf GPIO,f ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line2:
 nop ; 1/3
 nop ; 1/4

 ; video 48 instructions
 movlw 1 ; 1/5
 movwf GPIO ; 1/6
 incf GPIO,f ; 1/7
 incf GPIO,f ; 1/8
 incf GPIO,f ; 1/9
 incf GPIO,f ; 1/10
 incf GPIO,f ; 1/11
 incf GPIO,f ; 1/12
 incf GPIO,f ; 1/13
 incf GPIO,f ; 1/14
 incf GPIO,f ; 1/15
 incf GPIO,f ; 1/16
 incf GPIO,f ; 1/17
 incf GPIO,f ; 1/18
 incf GPIO,f ; 1/19
 incf GPIO,f ; 1/20
 incf GPIO,f ; 1/21
 incf GPIO,f ; 1/22
 incf GPIO,f ; 1/23
 incf GPIO,f ; 1/24
 incf GPIO,f ; 1/25
 incf GPIO,f ; 1/26
 incf GPIO,f ; 1/27
 incf GPIO,f ; 1/28
 incf GPIO,f ; 1/29
 incf GPIO,f ; 1/30
 incf GPIO,f ; 1/31
 incf GPIO,f ; 1/32
 incf GPIO,f ; 1/33
 incf GPIO,f ; 1/34
 incf GPIO,f ; 1/35
 incf GPIO,f ; 1/36
 incf GPIO,f ; 1/37
 incf GPIO,f ; 1/38
 incf GPIO,f ; 1/39
 incf GPIO,f ; 1/40
 incf GPIO,f ; 1/41
 incf GPIO,f ; 1/42
 incf GPIO,f ; 1/43
 incf GPIO,f ; 1/44
 incf GPIO,f ; 1/45
 incf GPIO,f ; 1/46
 incf GPIO,f ; 1/47
 incf GPIO,f ; 1/48
 incf GPIO,f ; 1/49
 incf GPIO,f ; 1/50
 incf GPIO,f ; 1/51
 incf GPIO,f ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64

; MAIN LOOP
loop:
 clrf LineN
 ; lines 1-8 (row 1)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 9-16 (row 2)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 17-24 (row 3)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 25-32 (row 4)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 33-40 (row 5)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 41-48 (row 6)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 49-56 (row 7)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 57-64 (row 8)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 65-72 (row 9)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 73-80 (row 10)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 81-88 (row 11)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 89-96 (row 12)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 97-104 (row 13)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 105-112 (row 14)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 113-120 (row 15)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 121-128 (row 16)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 129-136 (row 17)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 137-144 (row 18)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 145-152 (row 19)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 153-160 (row 20)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 161-168 (row 21)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 169-176 (row 22)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 177-184 (row 23)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 185-192 (row 24)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 192-200 (row 25)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 201-208 (row 26)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 209-216 (row 27)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
; lines 217-232 (16 blank lines)
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
; lines 233-236 (4 sync lines)
 call Line_
 call Line_
 call Line_
 call Line_
; lines 237-262 (26 blank lines)
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0

 goto loop


END

P.S. Тут получилось 4 градации серого вместо 8 потому что GP2 в режиме входа остался - надо бит 5 в регистре OPTION обнулить, чтобы GP2 смог стать выходом...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

Вот вариант с установкой OPTION в 0xC0 - теперь 8 градаций яркости :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

Вобщем каждая строчка начинается с 1 - потом через одну повторяются паттерны 1,2,3,4,5,6,7,0 (получено через INCF) и 1,6,1,6,1,6,1,6 (получено через COMF)

P.S. Если кому интересно - вот так выглядит экран ТВ при пиксельклоке 1 МГц...
Я тут за главного - если что шлите мыло на me собака shaos точка net
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by jdigreze »

А чего верх получился сорванный? Пустые строки после КСИ не вставил?
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

jdigreze wrote:А чего верх получился сорванный? Пустые строки после КСИ не вставил?
Потому что в конце программы стоит GOTO LOOP (2 такта) и на LOOP: CLRF (еще 1 такт) - вот из-за этих 3 тактов и уехало - поправлю в следующей версии (сделаю последнюю подпрограмму Line в кадре на 3 такта короче)

P.S. Еще не на всех телеках оно ловится - возможно с амплитудами уровней надо поиграца
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »



Поправленный исходник (со схемой в комментариях), который занимает 87% микроконтроллера PIC12C508A:

 PIC12-T1.ASM

Code: Select all

; PIXY TEST 1 BY SHAOS (JAN 2017)
; ===============================
; Build: gpasm pic12-t1.asm

 processor pic12c508
 radix dec
 include "p12c50X.inc"
 __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

;       +5V
;      .--*
;      #  |  PIC12C508
; 480* #  |   ---v---
;      #  \--|1     8|- GND
;      | NC -|2     7|--###-\  1.5 kOhm
; SYNC *-----|3     6|--###--* 680 Ohm
;      | IN -|4     5|--###-/| 330 Ohm
;      |      -------        |
;       ----------------###--*---> VIDEO (8 gray levels)
;                     1 kOhm

LineN EQU 0x08 ; line counter
TempN EQU 0x09 ; temporary counter

 movwf OSCCAL ; store factory calibration value
 movlw 0xC0
 option
 goto loop

; call ; 2/2 (FRAME SYNC)
Line_:
 nop ; 1/3
 nop ; 1/4

 ; blank 48 instructions
 clrf GPIO ; 1/5
 movlw 15 ; 1/6
 movwf TempN ; 1/7
Line_loop: ; 15*3-1=44/51
 decfsz TempN,f ; (1/1)
 goto Line_loop ; (2/3)
 nop ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x18 ; 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x08 ; 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line0:
 nop ; 1/3
 nop ; 1/4

 ; blank 48 instructions
 clrf GPIO ; 1/5
 movlw 15 ; 1/6
 movwf TempN ; 1/7
Line0loop: ; 15*3-1=44/51
 decfsz TempN,f ; (1/1)
 goto Line0loop ; (2/3)
 nop ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line1:
 nop ; 1/3
 nop ; 1/4

 ; video 48 instructions
 movlw 1 ; 1/5
 movwf GPIO ; 1/6
 comf GPIO,f ; 1/7
 comf GPIO,f ; 1/8
 comf GPIO,f ; 1/9
 comf GPIO,f ; 1/10
 comf GPIO,f ; 1/11
 comf GPIO,f ; 1/12
 comf GPIO,f ; 1/13
 comf GPIO,f ; 1/14
 comf GPIO,f ; 1/15
 comf GPIO,f ; 1/16
 comf GPIO,f ; 1/17
 comf GPIO,f ; 1/18
 comf GPIO,f ; 1/19
 comf GPIO,f ; 1/20
 comf GPIO,f ; 1/21
 comf GPIO,f ; 1/22
 comf GPIO,f ; 1/23
 comf GPIO,f ; 1/24
 comf GPIO,f ; 1/25
 comf GPIO,f ; 1/26
 comf GPIO,f ; 1/27
 comf GPIO,f ; 1/28
 comf GPIO,f ; 1/29
 comf GPIO,f ; 1/30
 comf GPIO,f ; 1/31
 comf GPIO,f ; 1/32
 comf GPIO,f ; 1/33
 comf GPIO,f ; 1/34
 comf GPIO,f ; 1/35
 comf GPIO,f ; 1/36
 comf GPIO,f ; 1/37
 comf GPIO,f ; 1/38
 comf GPIO,f ; 1/39
 comf GPIO,f ; 1/40
 comf GPIO,f ; 1/41
 comf GPIO,f ; 1/42
 comf GPIO,f ; 1/43
 comf GPIO,f ; 1/44
 comf GPIO,f ; 1/45
 comf GPIO,f ; 1/46
 comf GPIO,f ; 1/47
 comf GPIO,f ; 1/48
 comf GPIO,f ; 1/49
 comf GPIO,f ; 1/50
 comf GPIO,f ; 1/51
 comf GPIO,f ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64


; call ; 2/2
Line2:
 nop ; 1/3
 nop ; 1/4

 ; video 48 instructions
 movlw 1 ; 1/5
 movwf GPIO ; 1/6
 incf GPIO,f ; 1/7
 incf GPIO,f ; 1/8
 incf GPIO,f ; 1/9
 incf GPIO,f ; 1/10
 incf GPIO,f ; 1/11
 incf GPIO,f ; 1/12
 incf GPIO,f ; 1/13
 incf GPIO,f ; 1/14
 incf GPIO,f ; 1/15
 incf GPIO,f ; 1/16
 incf GPIO,f ; 1/17
 incf GPIO,f ; 1/18
 incf GPIO,f ; 1/19
 incf GPIO,f ; 1/20
 incf GPIO,f ; 1/21
 incf GPIO,f ; 1/22
 incf GPIO,f ; 1/23
 incf GPIO,f ; 1/24
 incf GPIO,f ; 1/25
 incf GPIO,f ; 1/26
 incf GPIO,f ; 1/27
 incf GPIO,f ; 1/28
 incf GPIO,f ; 1/29
 incf GPIO,f ; 1/30
 incf GPIO,f ; 1/31
 incf GPIO,f ; 1/32
 incf GPIO,f ; 1/33
 incf GPIO,f ; 1/34
 incf GPIO,f ; 1/35
 incf GPIO,f ; 1/36
 incf GPIO,f ; 1/37
 incf GPIO,f ; 1/38
 incf GPIO,f ; 1/39
 incf GPIO,f ; 1/40
 incf GPIO,f ; 1/41
 incf GPIO,f ; 1/42
 incf GPIO,f ; 1/43
 incf GPIO,f ; 1/44
 incf GPIO,f ; 1/45
 incf GPIO,f ; 1/46
 incf GPIO,f ; 1/47
 incf GPIO,f ; 1/48
 incf GPIO,f ; 1/49
 incf GPIO,f ; 1/50
 incf GPIO,f ; 1/51
 incf GPIO,f ; 1/52

 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 incf LineN,F ; 1/58 -> sync
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 retlw 1 ; 2/64

; MAIN LOOP
loop:
 clrf LineN
loop2:
 ; lines 1-8 (row 1)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 9-16 (row 2)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 17-24 (row 3)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 25-32 (row 4)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 33-40 (row 5)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 41-48 (row 6)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 49-56 (row 7)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 57-64 (row 8)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 65-72 (row 9)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 73-80 (row 10)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 81-88 (row 11)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 89-96 (row 12)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 97-104 (row 13)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 105-112 (row 14)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 113-120 (row 15)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 121-128 (row 16)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 129-136 (row 17)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 137-144 (row 18)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 145-152 (row 19)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 153-160 (row 20)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 161-168 (row 21)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 169-176 (row 22)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 177-184 (row 23)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 185-192 (row 24)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 192-200 (row 25)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 ; lines 201-208 (row 26)
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 call Line2
 ; lines 209-216 (row 27)
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
 call Line1
; lines 217-232 (16 blank lines)
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
; lines 233-236 (4 sync lines)
 call Line_
 call Line_
 call Line_
 call Line_
; lines 237-262 (26 blank lines)
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
 call Line0
; call Line0 - last blank line must be incomplete to compensate 3 cycles
 nop ; 1/1
 clrf GPIO ; 1/2
 movlw 16 ; 1/3
 movwf TempN ; 1/4
Line00loop: ; 16*3-1=47/51
 decfsz TempN,f ; (1/1)
 goto Line00loop ; (2/3)
 nop ; 1/52
 clrf GPIO ; 1/53 -> video 48
 nop ; 1/54
 nop ; 1/55
 movlw 0x08 ; 1/56
 tris GPIO ; 1/57
 clrf LineN ; 1/58
 nop ; 1/59 -> sync
 nop ; 1/60 -> sync
 movlw 0x18 ; 1/61 -> sync
 tris GPIO ; 1/62 -> sync
 goto loop2 ; 2/64

END

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Lavr »

Shaos wrote:Генерируем кадр NTSC на 4 МГц старом пике :)
Ну то есть, ты всё тужишься сгенерить бестолковые изображения, которые тебе позволяет скорость старого пика?
Я так понимаю - ничего более осмысленного в итоге и не получится?
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

Lavr wrote:
Shaos wrote:Генерируем кадр NTSC на 4 МГц старом пике :)
Ну то есть, ты всё тужишься сгенерить бестолковые изображения, которые тебе позволяет скорость старого пика?
Я так понимаю - ничего более осмысленного в итоге и не получится?
Ну можно цвет примешать для пущей весёлости :)
А вообще да - с 4 МГц всё тухло в смысле ТВ...
Я тут за главного - если что шлите мыло на me собака shaos точка net
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by jdigreze »

Ну как ничего путнего - типа самый минималистичный тестер видеотракта ТВ :lol:
User avatar
dementor
Novelist
Posts: 47
Joined: 26 Dec 2016 23:38

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by dementor »

jdigreze wrote:Ну как ничего путнего - типа самый минималистичный тестер видеотракта ТВ :lol:
Если уж до конца идти то самый минималистический тестер будет на 10f200, там тоже 4 МГц
Не кирпичом англичане ружья чистят!
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

dementor wrote:
jdigreze wrote:Ну как ничего путнего - типа самый минималистичный тестер видеотракта ТВ :lol:
Если уж до конца идти то самый минималистический тестер будет на 10f200, там тоже 4 МГц
Это уже современная поделка, а мы типа берём ретро и смотрим что могли бы сделать люди прошлого века, но почему-то не сделали :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Lavr »

jdigreze wrote:самый минималистичный тестер видеотракта ТВ :lol:
Стандарта NTSC, и, как говорит Shaos, не всяк видеотракт ТВ ещё соглашается тестироваться... :wink:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Shaos »

Lavr wrote:
jdigreze wrote:самый минималистичный тестер видеотракта ТВ :lol:
Стандарта NTSC, и, как говорит Shaos, не всяк видеотракт ТВ ещё соглашается тестироваться... :wink:
Есть у меня новый LCD телек, который замечательно показывает цветное видео с моего проекта Xorya (PIC32), но совершенно отказывается понимать чёрно-белое (и PIC32, и PIC12) - пишет 0p, 61Hz вместо 480i, 60Hz и не заводится...

Возможно если повторить все тонкости формирования полукадров NTSC и синхронизации между ними он и заведётся, но чего-то мне не охота заморачиваться :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Экспериментирую с 8-ногим пиком PIC12C508A

Post by Lavr »

Shaos wrote:Возможно если повторить все тонкости формирования полукадров NTSC и синхронизации между ними он и заведётся, но чего-то мне не охота заморачиваться :)
То есть он не хочет понимать то, что называют "прогрессивная развертка"?
Ему только полукадры подавай?
iLavr