Специальные цены   новые товары
Закрытая тема
Показано с 1 по 10 из 10

pic 12c508 замена на аналоги

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Доброго всем дня! Помогите пожалуйста решить проблему: Есть код под pic12c508: Код: ; ;-----------PROGRAMM of TRAFFIC LIGHT------------ ; list p=12c508 ...

  1. #1

    Регистрация
    14.11.2007
    Адрес
    Набережные Челны
    Сообщений
    5

    pic 12c508 замена на аналоги

    Доброго всем дня!
    Помогите пожалуйста решить проблему:
    Есть код под pic12c508:
    Код:
    ;
    ;-----------PROGRAMM of TRAFFIC LIGHT------------
    ;
    	list 	p=12c508
    	__config H'000A'
    	errorlevel 1
    ;
    	incl*ude "d:\p12c508.inc";проверьте путь к файлу!
    ;
    ;----------- Constants -----------------
    ;
    CLKOUT		=	.4000000/4
    ;
    LSB		equ	0
    MSB		equ	7
    ;
    	org	07h
    ;
    OutPort		res	1	
    Count		res	1	
    TimeCount	res	1	
    ;
    ;------------------------------------
    TRIS_GPIO	=	b'11001000'
    ;				
    ;
    ;---------- GPIO Pin Name -------------
    ;
    GreenRight	equ	0;output
    GreenLeft	equ	1;output
    Yellow		equ	2;output
    Mode		equ	3; input
    RedRight	equ	4;output
    RedLeft		equ	5;output
    
    LIGHT	MACRO	RL, RR, Y, GL, GR, TIME
    ;
    	IF	RL == 1			
    	bcf	OutPort, RedLeft	 
    	ELSE				
    	bsf	OutPort, RedLeft	
    	ENDIF
    ;аналогично для "красного справа"
    	IF	RR == 1
    	bcf	OutPort, RedRight
    	ELSE
    	bsf	OutPort, RedRight
    	ENDIF
    ;аналогично для "желтого"
    	IF	Y  == 1
    	bcf	OutPort, Yellow
    	ELSE
    	bsf	OutPort, Yellow
    	ENDIF
    ;аналогично для "зеленого слева"
    	IF	GL == 1
    	bcf	OutPort, GreenLeft
    	ELSE
    	bsf	OutPort, GreenLeft
    	ENDIF
    ;аналогично для "зеленого справа"
    	IF	GR == 1
    	bcf	OutPort, GreenRight
    	ELSE
    	bsf	OutPort, GreenRight
    	ENDIF
    ;
    	movf	OutPort, W	
    	movwf	GPIO		
    	IF	TIME != 0
    	movlw	TIME		
    	ELSE
    	movlw	1
    	ENDIF
    	movwf	TimeCount	
    	call	TimeEnd		
    	ENDM
    ;
    ;-------------------- Start address ------------------------------
    ;
    	org	01FF	;вектор сброса
    	b	begin
    	org	0	;начало
    begin	
    	movlw	b'10000111';OPTION BYTE
    
    	option
    ;
    	movlw	TRIS_GPIO
    		tris	GPIO
    ;
    	movlw	0FF
    	movwf	OutPort
    	movwf	GPIO	;погасить все светодиоды
    ;
    main
    	btfss	GPIO, Mode;проверить режим (обычный <-> мигающий)
    	b	PulseYellow
    ;			;обычный режим
    	LIGHT	1,0,0,0,1, .20	
    	LIGHT	1,0,0,0,0, .1	
    	LIGHT	1,0,0,0,1, .1
    	LIGHT	1,0,0,0,0, .1
    	LIGHT	1,0,0,0,1, .1
    	LIGHT	1,0,0,0,0, .1
    	LIGHT	1,0,0,0,1, .1
    	LIGHT	1,0,1,0,0, .4	
    	LIGHT	0,1,0,1,0, .20	
    	LIGHT	0,1,0,0,0, .1	
    	LIGHT	0,1,0,1,0, .1
    	LIGHT	0,1,0,0,0, .1
    	LIGHT	0,1,0,1,0, .1
    	LIGHT	0,1,0,0,0, .1
    	LIGHT	0,1,0,1,0, .1
    	LIGHT	0,1,1,0,0, .4	
    	b	main
    PulseYellow			
    	LIGHT	0,0,1,0,0, .1	
    	LIGHT	0,0,0,0,0, .1	
    	b	main
    ; -------
    TimeEnd					
    	movlw	.500000/.256/.256	
    	movwf	Count			
    TimePlus
    	movlw	1
    	movwf	TMR0
    TimeLoop
    	nop
    	movf	TMR0, W
    	bnz	TimeLoop	
    	decfsz	Count, F	
    	b	TimePlus
    	decfsz	TimeCount, F	
    	b	TimeEnd	
    	return			
    ;=================================================================
    ;
    	END
    Ну так вот...как я понимаю для того чтобы записать этот код на pic 12c508a необходимо исправить строчу incl*ude? или я не правильно понимаю? просто я так делал...и запорол уже несколько контроллеров=(. Можно ли ли вместо pic12c508 использовать аналоги на флеш памяти(12f629,12f675)...и много ли при этом надо будет переделывать код?
    Да и еще вопросик может ли picprog(мне его одолжили, так как больше ничего нет) прошивать 12f629 и 12f675? Ато как я понял после прочтения форума поддержка picprog прекратилась и он не поддерживает новые типы контроллеров...
    Заранее примного благодарен.

  2.  
  3. #2

    Регистрация
    17.11.2005
    Адрес
    Москва
    Возраст
    56
    Сообщений
    2,454
    Иногда шью одним и тем же HEX-файлом и 12С508, и 12С508А и 12С509. Короче что под рукой в данный момент есть. Все работает без всяких изменений кода.

  4. #3

    Регистрация
    14.11.2007
    Адрес
    Набережные Челны
    Сообщений
    5
    ТО есть можно откомпилировать этот код и залить его в контроллер?... тогда в чем проблема? я его залил в контроллер, контроллер вставил в схему, а она категорически отказывается работать....при этом контроллер до прошивки был чистым(проверял), а при записи выдал ошибку какую-то(чето там про адрес памяти 0040h...что-то такое...)...но как понял она должна была вылезти...так что в чем проблема не знаю=(

  5. #4

    Регистрация
    21.11.2006
    Адрес
    Нижний Новгород
    Возраст
    44
    Сообщений
    5,323
    Если у Вас при программировании появляется ошибка, то, во-первых, нечего и пытаться использовать такой контроллер, во-вторых, текст ошибки надо переписывать тщательно, с точностью до буковки, чтобы на него можно было посмотреть и осмысленный совет дать.

  6.  
  7. #5
    Забанен
    Регистрация
    24.04.2007
    Адрес
    Санкт-Петербург
    Возраст
    59
    Сообщений
    2,768
    Цитата Сообщение от MrPayne Посмотреть сообщение
    Есть код под pic12c508:
    ----- skipped ----
    Ну так вот...как я понимаю для того чтобы записать этот код на pic 12c508a необходимо исправить строчу incl*ude? или я не правильно понимаю?
    В этом инклюде стоит ссылка на файл с перечнем регистров, адресов и прочей требухи, относящейся к данному контороллеру. У 508(А) и 509(А) они одинаковы, кроме размера самого кода, который можно записать в контроллер. Поэтому, можно ничего не менять. Кроме того, в МРЛАБе вообще нет файлов *.inc для этих контроллеров с буковками А, только P12F508.INC и P12F509.INC
    Цитата Сообщение от MrPayne Посмотреть сообщение
    просто я так делал...и запорол уже несколько контроллеров=(. Можно ли ли вместо pic12c508 использовать аналоги на флеш памяти(12f629,12f675)...и много ли при этом надо будет переделывать код?
    Вместо 508 можно использовать только 509. Для 629, 675 надо переделывать т.н. "шапку" программы, т.к. у них "больше регистров" и их надо как-то "инициализировать". Сам код не меняется. Надо на микрочипе взять руссий даташит на них и посмотреть, в чём разница.
    Цитата Сообщение от MrPayne Посмотреть сообщение
    Да и еще вопросик может ли picprog(мне его одолжили, так как больше ничего нет) прошивать 12f629 и 12f675? Ато как я понял после прочтения форума поддержка picprog прекратилась и он не поддерживает новые типы контроллеров...
    Заранее примного благодарен.
    Думаю, прошьет, хотя в описании на него эти м/к почему-то не фигурируют. Я шью программой IC-Prog. И только 629, 675, т.к., во-первых, их можно стирать (что немаловажно для отладки программ) и, во-вторых, они дешевле 508-509 при большем функционале.
    P.S. И исходники какие-то странные...
    org 01FF ;вектор сброса
    b begin
    ... что они хотели этим сказать?

  8. #6

    Регистрация
    14.11.2007
    Адрес
    Набережные Челны
    Сообщений
    5
    Еще раз залил эту же прошивку в контроллер. снова вылезла ошибка:
    Ошибка по адресу 00001FF: записано 0800 вместо 0А00
    затем друг за другом выскочили:
    ошибка верификации(5.5в)
    ошибка верификации(3.0в)

    Чтобы это все значило..програматор PicProg

  9. #7
    Забанен
    Регистрация
    24.04.2007
    Адрес
    Санкт-Петербург
    Возраст
    59
    Сообщений
    2,768
    Цитата Сообщение от MrPayne Посмотреть сообщение
    Еще раз залил эту же прошивку в контроллер. снова вылезла ошибка:
    Ошибка по адресу 00001FF: записано 0800 вместо 0А00
    затем друг за другом выскочили:
    ошибка верификации(5.5в)
    ошибка верификации(3.0в)
    Чтобы это все значило..програматор PicProg
    Ну, а я что пишу:
    Цитата Сообщение от Voldemaar Посмотреть сообщение
    P.S. И исходники какие-то странные...
    org 01FF ;вектор сброса
    b begin
    ... что они хотели этим сказать?
    По адресу 01FF у 508 находится калибровочная константа. Я бы вообще убрал эти строчки из программы... Или посмотрел в бинарнике, что в 1FF находится. И нормальная прога вообще не будет ничего писать по этому адресу - по крайней мере должна "ругаться" на попытку занести туда что-то не то...
    P.S. Еще раз посылаю всех с аналогичными вопросами на тот же Казус - там более специализированная публика...

  10.  
  11. #8

    Регистрация
    14.11.2007
    Адрес
    Набережные Челны
    Сообщений
    5
    Эти строчки видимо нужны,так как если их убрать из кода, то hex даже не получается...=( так что думаю проблема не в этом...

  12. #9
    Забанен
    Регистрация
    24.04.2007
    Адрес
    Санкт-Петербург
    Возраст
    59
    Сообщений
    2,768
    Цитата Сообщение от MrPayne Посмотреть сообщение
    Эти строчки видимо нужны,так как если их убрать из кода, то hex даже не получается...=( так что думаю проблема не в этом...
    1. Если строчки убрать из кода - всё отлично получается.
    2. Если их оставить - то как раз по адресу 01FF и вылазит 0A00.
    А как я писал:
    Цитата Сообщение от Voldemaar Посмотреть сообщение
    По адресу 01FF у 508 находится калибровочная константа.
    Вы знаете, что такое калибровочная константа? Просто тяжело рассуждать о решении дифуров с тем, кто не знает даже таблицу умножения

  13. #10

    Регистрация
    14.11.2007
    Адрес
    Набережные Челны
    Сообщений
    5
    Цитата Сообщение от Voldemaar Посмотреть сообщение
    1. Если строчки убрать из кода - всё отлично получается.
    2. Если их оставить - то как раз по адресу 01FF и вылазит 0A00.
    А как я писал:

    Вы знаете, что такое калибровочная константа? Просто тяжело рассуждать о решении дифуров с тем, кто не знает даже таблицу умножения
    Вы хотите посеовноваться со мной в решении диф.уров? это как раз у меня намного лучше получаетя чем програмирование;-)
    Что такое калибровочная констатнта если честно не знаю...но в дебугере если убрать эти 2 строчки, то программа начинает работать совершенно неадекватно

Закрытая тема

Похожие темы

  1. Замена на бенизновый двигатель
    от Fenik в разделе Авто. Общий
    Ответов: 8
    Последнее сообщение: 09.09.2009, 09:55
  2. Honey Bee King2- запчасти- ремонт, замена, возможные аналоги.
    от Vladlen в разделе Вертолеты. Общие вопросы
    Ответов: 55
    Последнее сообщение: 31.08.2008, 15:28
  3. Про сервы на аналог T-Rex
    от ugh в разделе Аппаратура, гироскопы, гувернеры, электроника
    Ответов: 2
    Последнее сообщение: 13.01.2007, 11:38
  4. что нужно изменить в прошивке pic 12c508, чтобы она работала для pic 12c508a?
    от бауманец в разделе Самодельная электроника, компьютерные программы
    Ответов: 6
    Последнее сообщение: 03.09.2006, 15:29
  5. Декодер на pic 12c508?
    от Scat в разделе Самодельная электроника, компьютерные программы
    Ответов: 2
    Последнее сообщение: 24.10.2005, 23:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения