Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с извикване на функция
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5250
Страница 1 от 1

Автор:  milenjs [ Сря Дек 26, 2007 9:35 am ]
Заглавие:  Проблем с извикване на функция

Функцията е следната -
Код:
void write_string(int address, char string[]) {
  int i = 0;
      while(string[i]!='\0') {   
      write_eeprom(address++,string[i]);   
      i++;
      }
      write_eeprom(address++,0); 
}   

, процесора 877а, компилатора CCS.
Трябва да работи а не иска. Когато я извикам записва на първия адрес 4А и хвърля процесора в киреча - рестартира се постоянно. Пробвах друго - на мястото на извикването и поставих кода от функцията - тогава всичко е на 6+ . Защо се получава така?

Автор:  zaphod [ Сря Дек 26, 2007 11:42 am ]
Заглавие: 

сигурен ли си че стринга ти има 0 накрая? ако да, пробвай все пак да подмениш това char string[] със char *string, нямам им вяра на тия [].

Автор:  Nikola Kirov [ Сря Дек 26, 2007 1:30 pm ]
Заглавие: 

Ако стринга който подаваш на функцията си е нормално терминиран с 0 по скоро CCS-a обозява нещо.
Толкоз години вече този компилатор не мръдна от ниво ТНТМ история :)
Евентуално може и стек да ти се препълва. Що не дебъгнеш да видиш какво става точно.

Автор:  milenjs [ Сря Дек 26, 2007 2:16 pm ]
Заглавие: 

Ами стринга си е терминиран с 0 накрая, преди това викам функция която го изравнява от дясно, пробвах и char string[] да го заменя с *string - същата боза. По закона на Мърфи ICD2-то ми казва че неможело да стартира таргета, Протеуса незнайно защо не дава да се сложат на този проект breakpoins на главния файл.
Между другото, пробвах да извикам същата тази функция в друг проект пак на CCS, работи си ОК, явно дали от ТНТМ-то или поради неплащане на продукта?

Автор:  Nikola Kirov [ Сря Дек 26, 2007 2:30 pm ]
Заглавие: 

Всичко свързано с PIC е общи линии е ниво ТНТМ. Да не те учудва. А CCS-a се лекува безболезнено,ням да е от лечението.

Автор:  zaphod [ Сря Дек 26, 2007 3:24 pm ]
Заглавие: 

гледай асемблерския код, там ще се види какво става.
по принцип който си мисли че може да пише за микроконтролер и да седи встрани от асемблера се лъже.
да се пише на асемблер е глупаво, но за нуждите на дебъгването асемблера е неминуем, и то не само за микроконтролери. дори джаварските и .НЕТ среди показват псевдокода, хем по замисъл трябва да се ползват от кретени.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/