| Автор |
Съобщение |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
 IntRC PIC16F628A
Здравейте
Имам проблем относно работата на този пик с вътрешния осцилатор. Изобщо не иска да тръгне, като напиша програмата на PIC C , а като я напиша на асемблер и си работи ?! ето конфигурацията на пика на С :
.......
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(OSC_4MHZ );
.............
#include <16F628A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(clock=4000000)
Има ли нещо , което да пропускам ?
|
| Сря Ное 14, 2007 7:26 pm |
|
 |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
Във никъде не виждам да задаваш какъв тип ти е осцилатора ,нещо от сорта на
__CONFIG( HS & PWRTEN & BORDIS & WDTDIS & LVPDIS & DEBUGDIS & UNPROTECT);
|
| Чет Ное 15, 2007 1:02 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT - Ето тук
|
| Чет Ное 15, 2007 6:41 pm |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
mash аз нямам проблеми точно с този проц, но използвам Hi-Tech.
Мисля, че тази дефиниция е объркана, за един друг процесор,
ползвах PICC и имах проблем и до колкото си спомням бяха объркани
по отношение на това дали да има CLKOUT или не.
Но инъче си работеше.
|
| Пет Ное 16, 2007 3:47 pm |
|
 |
|
/dev/null
Ранг: Минаващ
Регистриран на: Пон Юли 23, 2007 8:09 am Мнения: 29
|
Имах такъв проблем със 16ф628а.
Ако не ти е фатален броя на I/O пиновете, закачи пулъп на MCLR и 99% ще тръгне.
П.П. Софтуеарната ти конфигурация е добре.
_________________ I'm not a complete idiot. Some parts are missing ...
|
| Пет Ное 16, 2007 4:11 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 Re: IntRC PIC16F628A
Пробвай вместо
#use delay(clock=4000000)
да сложиш
#use delay(internal=4M)
може пък да се оправи
|
| Пет Ное 16, 2007 7:55 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Хм.. нищо не помага
като напиша програмата на асемблер и осцилатора работи, а на PICC не работи.
Много интересно...
|
| Съб Ное 17, 2007 6:35 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Имаше нещо гнило по една от версиите на CCS за Fuses точно за този процесор . Изпробвай с
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Вто Ное 20, 2007 12:54 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Не му знам на тоя къде му е OSCCAL във FLASH-a, обаче изкарай си CLKOUT на RA6 и виж има ли такт, ако има, най-вероятно проблема ти е в инициализацията на процесора, в CCS има едно парче код което чете OSCCAL от FLASH и го мята в OSCCAL в GP-тата, там е retlw инструкция (0x3CXX), ако си я затрил съвсем случайно оттам, процесора ще си стои във първите 30-ина байта, директивата във CCS е:
|
| Вто Ное 20, 2007 9:13 am |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Изпробвах всичко изписано по тази тема и не се получава нищо
Много странно ... като напиша кода на MPlab и си работи безупречно!
Кода на асемблер ми върши работа, но не ми дава покой, защо не мога да го направя на С?!
п.с. на RA6 няма такт каот го задам.
|
| Сря Ное 21, 2007 12:54 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Опитай с:
Все пак, провери си FUSES преди да го програмираш (и дали изобщо си включил CLKOUT на RA6), в краен случай направи disassembly с някоя програма, става даже и с ICPROG и виж къде се дъни
|
| Сря Ное 21, 2007 8:57 am |
|
 |
|
stanleyhacker
Ранг: Новодошъл
Регистриран на: Чет Дек 02, 2004 7:22 pm Мнения: 140
|
setup_oscillator(OSC_4MHZ );
Вместо OSC_4MHZ трябва да е от рода на INTOSC_IO ili INTOSC_NOCLKOUT
|
| Сря Ное 21, 2007 6:43 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Добре де, след като го програмираш с програмата на Ц, прочети обратно професора и виж какви са му fuse битовете, същото направи и с програмата на асемблер, виж дали има разлики/прилики 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Ное 21, 2007 7:08 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Няма разлики !
записва си ги без проблем .....
|
| Сря Ное 21, 2007 7:27 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Ако наистина няма разлики между записаните fuse битове на програмата на Ц и асемблер, значи проблема е нещо в програмата на Ц. Виж в листинга какъв асемблер е генерирал компилатора.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Ное 21, 2007 8:09 pm |
|
|