| Автор |
Съобщение |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
 Re: CRC библиотека
По-сокоро нещо такова трябва да е:
|
| Вто Окт 27, 2015 3:33 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
таймера го направих ето така :
#include <p18f67j60.h> void timer_us(unsigned int time) { unsigned int max_num=65525 ; static struct diff { unsigned char MSB; unsigned char LSB; }unsigned razlika={0,0}; diff razlika=max_num-time ; TMR0L=razlika.LSB; TMR0H=razlika.MSB; INTCON=0b10100000 ; T0CON=0b10000000 ; while(T0CONbits.TMR0ON==1) {NOP ; } }
|
| Чет Окт 29, 2015 4:35 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Но имам проблем при компилирането на тази подпрограма :
#include <p18f67j60.h> void send_command(unsigned char command) { unsigned int i, c ; bit bufbus=0 ; for(i=0; i<8; i++) { bufbus=commmand; if(bufbus==1) {PORTBbits.RB5=0 ; for(c=0; c<6; ) { c++ ; } PORTBbits.RB5=1 ; timer_us(45) ; } else { PORTBbits.RB5=0 ; timer_us(60) ; } command>>1 ; } }
въпреки, че думата "bit" е позната на компилатора ми казва, че имам синтактична грешка. А на мен ми трябва тази променлива. Също така ми изписва чe command не е дефинирана.
|
| Чет Окт 29, 2015 4:52 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
 Re: CRC библиотека
Дали ще е бит или байт (unsigned char) е все тая. Няма да спестиш нищо. Проблема с "command" ти е грешното изписване (с 3 m-та), заради което ме подведе търсенето и сега си редактирах поста. Използвай "code" таг да си постваш кода, че така е супер нечетим.
|
| Чет Окт 29, 2015 5:10 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
bufbus=command;
Това е доста фриволен код.
Не ти трябва 'bufbus', вместо 'if(bufbus==1)' напиши 'if(command & 1)!=0)' .
for(c=0; c<6; ) { c++ ; }
Тоя цикъл какво прави?
Интересно, че не ти дава грешки за липсващи ';' . Виж дали има такава настройка и я включи.
|
| Чет Окт 29, 2015 5:50 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Така ще стане, но как да разбирам command & 1 ? А относно цикъла това е грешка на програмиста, която си оправи. Такава настройка има и е включена. А какъв може да е проблема да ми излиза грешка при дефиниране на bit ?
|
| Чет Окт 29, 2015 7:26 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
& -побитово умножение/операция И
може да не ти позволява локални променливи от тоя тип. пробвай да я дефинираш глобално - за изясняване на проблема. всъщност е нормално при малките процесори да има някакви ограничения в компилатора.
|
| Чет Окт 29, 2015 8:13 pm |
|
 |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
 Re: CRC библиотека
@ЕнжЕнера, написал си виц. Земи: Имам смътно усещане, че трябва да се получи софтуерен УАРТ от тоя 'код'. Ако съм познал, трябва да е нещо такова:
|
| Пет Окт 30, 2015 2:48 am |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Даа, голям смях. Направил съм грешка и съм си я оправил. А кода е за комуникация по one-wire за това и кода за изчисляване на CRC е странен. Просто след последния бит проверява съдържанието дали е 0. Имам проблем с дефинирането на пинове 0-5 на порт В като входове,а 6 и 7 изходи. Изписва ми , че имам синтактична грешка.
#include <p18f67j60.h> #pragma config WDT=OFF #pragma config FOSC=HS TRISB=0b00111111;
|
| Пет Окт 30, 2015 4:39 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
 Re: CRC библиотека
Това ако ти е такова хвърчащо - т.е извън функция е нормално да не се компилира.
|
| Пет Окт 30, 2015 4:52 pm |
|
|