| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с MikroC Pro и Proteus http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=10323 |
Страница 1 от 1 |
| Автор: | Nikolai [ Сря Юли 18, 2012 10:28 am ] | |||||||||
| Заглавие: | Проблем с MikroC Pro и Proteus | |||||||||
Здравейте, имам следния проблем значи вчера се опитах да подкарам ds1307 като за целта си направих една схема в Протеус с PIC18F4550, един двуредов LCD и RTC-to. Исках просто на дсиплея да се изписват секундите от часовника като преди тях излезне надпис "Seconds:". При стартиране на симулация в Протеус виждам секундите в I2C Debugger-a и когато те се подават към дисплея като десетични числа се показват след 21-вата секунда като започват от удивителен знак и се изреждат. Но когато реша да ги преобразувам в ascii символи с функцията IntToStr. Настъпва голямо объркване първо, няма последователност във визулазирането на символи, появява се един удивителен знак допълнително и си стои постоянно. Освен това и в двата случая когато подавам към дисплея и десетични и ASCII символи позицията на дисплея не съответства на стойноста която съм задал във функцията за визуализиране. Аз му пиша на девета позиция да се появи символа той излиза на 10-та, пиша 11-та позизия той въобще не се появява. И в Протеуса и в проекта ми тактовите честоти са еднакви 8MHz, осцилатора е HS в MikroC-то. Къде може да е проблема ?
|
||||||||||
| Автор: | Cekins [ Сря Юли 18, 2012 12:37 pm ] |
| Заглавие: | Re: Проблем с MikroC Pro и Proteus |
RTFM Всички регистри в DS1307 са в BCD формат. Нормално е да ти излизат странни работи. Позициите на дисплея пък не е задължително да са там където си мислиш. Примерно има 16х1 дисплеи, които реда започва от позиция 0 и до 8-ия символ е 7-ма позиция, 9-ти символ вече се води на вотри ред (хардуерно в дисплея е на позиция 64) - един вид се държи като 8х2. Затова не е зле да прочетеш и документацията на дисплея и да го видиш точно как са разположени символите в паметта му. едит : освен това е тъпо да чакаш 1 секунда за следващото четене. В ДС-а има регистър който можеш да му настроиш какво да ти вади на SQW изхода - може да се настрои на 1Hz, подаваш го към пин с прекъсване и когато имаш прекъсване да си го четеш. Ама още по-умно е при първоначален старт да си прочиташ ртц-то, и после само да си инкрементваш на всяка секунда някаква променлива пак със прекъсването. Така ще спестиш излишно четене на ртц-то през 1 секунда. |
|
| Автор: | Stoimen [ Сря Юли 18, 2012 8:20 pm ] |
| Заглавие: | Re: Проблем с MikroC Pro и Proteus |
Не успях да видя къдя глобалната r_data получава върната от read_ds1307() стоиност. |
|
| Автор: | a_stankov [ Чет Юли 19, 2012 3:21 pm ] |
| Заглавие: | Re: Проблем с MikroC Pro и Proteus |
Да добавя, не разчитай сляпо на Протеус-а, имал съм случай в който код не тръгва като симулация на Протеус, а на платка си бачка идеално, и обратното. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|