Я его и имел в виду - hi-tech PICCvovik15 писал(а):у меня компилятор hi tech 9.70
помогите опросить энкодер
Re: помогите опросить энкодер
- Реклама
Re: помогите опросить энкодер
а у меня не компилируеться
на строчку
#include <htc.h> молчит
а на __delay_ms(10); // Задержка 10 мс
говорит что Error[499] : undefined symbol:
___delay_ms (C:\Program Files\Microchip\progect\labrary_delay\Untitled.obj)
на строчку
#include <htc.h> молчит
а на __delay_ms(10); // Задержка 10 мс
говорит что Error[499] : undefined symbol:
___delay_ms (C:\Program Files\Microchip\progect\labrary_delay\Untitled.obj)
Re: помогите опросить энкодер
ЧуднО. Попробуйте этот исходник скомпилить. Добавил delay в начало мэйна. У меня работает. Версия компилятора 9.80 PRO - может в этом дело?
- Вложения
-
- main.c
- (1.1 КБ) 988 скачиваний
Re: помогите опросить энкодер
Вот лог вывода:
Код: Выделить всё
Build D:\mplab\enco\encoder for device 16F628A
Using driver C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe
Make: The target "D:\mplab\enco\main.p1" is out of date.
Executing: "C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe" --pass1 D:\mplab\enco\main.c -q --chip=16F628A -P --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,-stackcall,+clib --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --double=24 --float=24 --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe" -oencoder.cof -mencoder.map --summary=default,-psect,-class,+mem,-hex --output=default,-inhx032 main.p1 --chip=16F628A -P --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,-stackcall,+clib --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --double=24 --float=24 --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode) V9.80
Copyright (C) 2010 Microchip Technology Inc.
Serial number: HCPICP-492167 (PRO)
Memory Summary:
Program space used 4Eh ( 78) of 800h words ( 3.8%)
Data space used 9h ( 9) of E0h bytes ( 4.0%)
EEPROM space used 0h ( 0) of 80h bytes ( 0.0%)
Configuration bits used 1h ( 1) of 1h word (100.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Loaded D:\mplab\enco\encoder.cof.
********** Build successful! **********Re: помогите опросить энкодер
не компилируеться этот код
Код: Выделить всё
Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -C -E"Untitled.cce" "Untitled.c" -O"Untitled.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628A
Advisory[1207] : some of the command line options you are using are now obsolete
Advisory[1208] : use --help option or refer to the user manual for option details
Warning[361] C:\Program Files\Microchip\progect\proba\Untitled.c 28 : function declared implicit int
Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -E"main.lde" "C:\Program Files\Microchip\progect\proba\Untitled.obj" -M"main.map" -O"main.cof" -O"main.hex" -Q -MPLAB -16F628A
Advisory[1207] : some of the command line options you are using are now obsolete
Advisory[1208] : use --help option or refer to the user manual for option details
Error[499] : undefined symbol:
___delay_ms (C:\Program Files\Microchip\progect\proba\Untitled.obj)
BUILD FAILED: Thu Jan 27 20:03:46 2011
- Реклама
Re: помогите опросить энкодер
Попробовал данный код на реальном железе, работает не корректно...
Данный баг я в начале заметил в протеусе:
Считает только на возрастание, ибо в функции interrupt успевает проскажить только первое условие, второе условие программа просто проскакивает, если поменять их местами, то будет считать только в обратную сторону
В общем не очень хороший алгоритм... Сейчас попробую написать что-то другое без использования аппаратных прерываний.
Данный баг я в начале заметил в протеусе:
Считает только на возрастание, ибо в функции interrupt успевает проскажить только первое условие, второе условие программа просто проскакивает, если поменять их местами, то будет считать только в обратную сторону
В общем не очень хороший алгоритм... Сейчас попробую написать что-то другое без использования аппаратных прерываний.


