collapse

* Posts Recentes

Aplicação de IC TP4056 - dissipador por jm_araujo
[Hoje às 23:15]


Problema em Impressora por senso
[Hoje às 12:46]


Ajuda atualizar hora NTP Verão/Inverno por vasco
[Ontem às 01:31]


Audio - Controlo Volume por SerraCabo
[17 de Janeiro de 2020, 21:20]


Mau condutor por vasco
[14 de Janeiro de 2020, 16:44]


Pequena impressora por jm_araujo
[13 de Janeiro de 2020, 10:34]


Martelo??? por Njay
[13 de Janeiro de 2020, 02:30]


Circuito de proteção para ferro de soldar. por vasco
[11 de Janeiro de 2020, 20:49]


Como criar Gerber F.Cu a partir do ficheiro BottomCu.gbr? por senso
[09 de Janeiro de 2020, 14:42]


Construir tanque ultrassons com nebulizadores? por senso
[09 de Janeiro de 2020, 14:42]

Autor Tópico: AVR - UART Receive  (Lida 3994 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.629
  • Helpdesk do sitio
Re: AVR - UART Receive
« Responder #15 em: 15 de Setembro de 2011, 19:28 »
Malloc em micro-controladores é perigoso, porque qualquer falha nos free e rebenta a stack bem depressa.

É claro que o micro não crasha se ficar num ciclo infinito, porque todos os micros têm de ficar em ciclo infinito, se não dão a volta ao program counter e recomeçam o programa do endereço 0, o que para o utilizador iria parecer um reset.

Isso de ele parecer que crasha é porque a tua função de recepção é bloqueante e se não tiver nada para ler fica ali á espera até receber alguma coisa.
Avr fanboy

Offline Tyran

  • Mini Robot
  • *
  • Mensagens: 293
Re: AVR - UART Receive
« Responder #16 em: 15 de Setembro de 2011, 20:56 »
Depende do microcontrolador e da memória ram e do espaço para a heap.

Mas nestes não costuma ser boa prática, já para não falar de bugs que possam existir nas libs...

Tenta saber sempre qual o tamanho máximo que podes vir a precisar e trabalhas com base nisso. Não quer dizer que não possas fazer da outra maneira, mas tens de ter cuidado extra.

Offline zordlyon

  • Mini Robot
  • *
  • Mensagens: 1.744
Re: AVR - UART Receive
« Responder #17 em: 15 de Setembro de 2011, 21:19 »
Malloc em micro-controladores é perigoso, porque qualquer falha nos free e rebenta a stack bem depressa.

É claro que o micro não crasha se ficar num ciclo infinito, porque todos os micros têm de ficar em ciclo infinito, se não dão a volta ao program counter e recomeçam o programa do endereço 0, o que para o utilizador iria parecer um reset.

Isso de ele parecer que crasha é porque a tua função de recepção é bloqueante e se não tiver nada para ler fica ali á espera até receber alguma coisa.

Hum disso desconhecia...é a desvantagem de andar a estudar informática e não electrotecnica, tudo o que passe da electronica basica uma pessoa fica a nora...  :-\

Pensei que so tinhamos que ter cuidado com a memória gasta, do resto era codigo para cima..

Cumprimentos,
André Carvalho.
Cumprimentos,
André Carvalho.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.629
  • Helpdesk do sitio
Re: AVR - UART Receive
« Responder #18 em: 15 de Setembro de 2011, 21:21 »
Mas tambem, ele bem que até pode usar um array com 1K para receber dados, tem 4K de ram para usar, chega e sobra bem.
O melhor nesse caso é usar uart com interrupções a ler para um buffer circular.
Avr fanboy

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: AVR - UART Receive
« Responder #19 em: 21 de Setembro de 2011, 00:33 »
Feito! Uf...!  8)

Obrigado pelas dicas pessoal.